Skip to content

Commit d0592ea

Browse files
committed
cmd/mecha: allow passing build-time params to flash subcommand.
Signed-off-by: deadprogram <ron@hybridgroup.com>
1 parent 7303f6e commit d0592ea

File tree

2 files changed

+19
-4
lines changed

2 files changed

+19
-4
lines changed

cmd/mecha/flash.go

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,24 @@ func flash(cCtx *cli.Context) error {
3939
intp += " debug"
4040
}
4141

42-
var cmd *exec.Cmd
42+
args := []string{"flash", "-size", "short", "-stack-size", "8kb", "-tags", intp, "-target", targetName}
43+
44+
if len(cCtx.StringSlice("params")) > 0 {
45+
ldlags := ""
46+
for _, p := range cCtx.StringSlice("params") {
47+
ldlags += " -X " + p
48+
}
49+
args = append(args, "-ldflags", ldlags)
50+
}
51+
4352
if cCtx.Bool("monitor") {
44-
cmd = exec.Command("tinygo", "flash", "-size", "short", "-stack-size", "8kb", "-tags", intp, "-target", targetName, "-monitor", ".")
45-
} else {
46-
cmd = exec.Command("tinygo", "flash", "-size", "short", "-stack-size", "8kb", "-tags", intp, "-target", targetName, ".")
53+
args = append(args, "-monitor")
4754
}
4855

56+
args = append(args, ".")
57+
58+
var cmd = exec.Command("tinygo", args...)
59+
4960
var stdoutBuf, stderrBuf bytes.Buffer
5061
cmd.Stdout = io.MultiWriter(&spinWriter{s, os.Stdout, false}, &stdoutBuf)
5162
cmd.Stderr = io.MultiWriter(&spinWriter{s, os.Stderr, false}, &stderrBuf)

cmd/mecha/main.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ func main() {
5454
&cli.BoolFlag{Name: "monitor", Aliases: []string{"m"}, Usage: "monitor the serial port after flashing"},
5555
&cli.StringFlag{Name: "interpreter", Aliases: []string{"i"}, Value: "wazero", Usage: "WebAssembly interpreter to use (wasman, wazero)"},
5656
&cli.BoolFlag{Name: "debug", Aliases: []string{"d"}, Usage: "perform additional logging for debugging"},
57+
&cli.StringSliceFlag{
58+
Name: "params",
59+
Usage: "Pass build-time parameters for the application. Format: -params main.name=value -params main.descript=value2",
60+
},
5761
},
5862
},
5963
{

0 commit comments

Comments
 (0)