Skip to content

Commit

Permalink
cmd/mecha: allow passing build-time params to flash subcommand.
Browse files Browse the repository at this point in the history
Signed-off-by: deadprogram <[email protected]>
  • Loading branch information
deadprogram committed Mar 10, 2024
1 parent 7303f6e commit d0592ea
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 4 deletions.
19 changes: 15 additions & 4 deletions cmd/mecha/flash.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,24 @@ func flash(cCtx *cli.Context) error {
intp += " debug"
}

var cmd *exec.Cmd
args := []string{"flash", "-size", "short", "-stack-size", "8kb", "-tags", intp, "-target", targetName}

if len(cCtx.StringSlice("params")) > 0 {
ldlags := ""
for _, p := range cCtx.StringSlice("params") {
ldlags += " -X " + p
}
args = append(args, "-ldflags", ldlags)
}

if cCtx.Bool("monitor") {
cmd = exec.Command("tinygo", "flash", "-size", "short", "-stack-size", "8kb", "-tags", intp, "-target", targetName, "-monitor", ".")
} else {
cmd = exec.Command("tinygo", "flash", "-size", "short", "-stack-size", "8kb", "-tags", intp, "-target", targetName, ".")
args = append(args, "-monitor")
}

args = append(args, ".")

var cmd = exec.Command("tinygo", args...)

var stdoutBuf, stderrBuf bytes.Buffer
cmd.Stdout = io.MultiWriter(&spinWriter{s, os.Stdout, false}, &stdoutBuf)
cmd.Stderr = io.MultiWriter(&spinWriter{s, os.Stderr, false}, &stderrBuf)
Expand Down
4 changes: 4 additions & 0 deletions cmd/mecha/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,10 @@ func main() {
&cli.BoolFlag{Name: "monitor", Aliases: []string{"m"}, Usage: "monitor the serial port after flashing"},
&cli.StringFlag{Name: "interpreter", Aliases: []string{"i"}, Value: "wazero", Usage: "WebAssembly interpreter to use (wasman, wazero)"},
&cli.BoolFlag{Name: "debug", Aliases: []string{"d"}, Usage: "perform additional logging for debugging"},
&cli.StringSliceFlag{
Name: "params",
Usage: "Pass build-time parameters for the application. Format: -params main.name=value -params main.descript=value2",
},
},
},
{
Expand Down

0 comments on commit d0592ea

Please sign in to comment.