Clean up load logging, capture build output via slog, use cmake --build
This commit is contained in:
@@ -204,25 +204,28 @@ func boardSerial(id [8]byte) string {
|
||||
id[0], id[1], id[2], id[3], id[4], id[5], id[6], id[7])
|
||||
}
|
||||
|
||||
func buildFirmware(buildDir string) error {
|
||||
slog.Info("configuring")
|
||||
cmake := exec.Command("cmake", "-S", filepath.Join(filepath.Dir(buildDir)), "-B", buildDir)
|
||||
cmake.Stdout = os.Stdout
|
||||
cmake.Stderr = os.Stderr
|
||||
if err := cmake.Run(); err != nil {
|
||||
return fmt.Errorf("cmake failed: %w", err)
|
||||
func runCmd(name string, args ...string) error {
|
||||
cmd := exec.Command(name, args...)
|
||||
out, err := cmd.CombinedOutput()
|
||||
if len(out) > 0 {
|
||||
for _, line := range strings.Split(strings.TrimSpace(string(out)), "\n") {
|
||||
slog.Info(name, "msg", line)
|
||||
}
|
||||
|
||||
slog.Info("building")
|
||||
cmd := exec.Command("make", "-C", buildDir)
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
if err := cmd.Run(); err != nil {
|
||||
return fmt.Errorf("build failed: %w", err)
|
||||
}
|
||||
if err != nil {
|
||||
return fmt.Errorf("%s failed: %w", name, err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func buildFirmware(buildDir string) error {
|
||||
srcDir := filepath.Dir(buildDir)
|
||||
if err := runCmd("cmake", "-S", srcDir, "-B", buildDir); err != nil {
|
||||
return err
|
||||
}
|
||||
return runCmd("cmake", "--build", buildDir)
|
||||
}
|
||||
|
||||
func cmdLoad(args []string) error {
|
||||
fs := flag.NewFlagSet("load", flag.ExitOnError)
|
||||
tf := addTargetFlags(fs)
|
||||
@@ -297,7 +300,7 @@ func cmdLoad(args []string) error {
|
||||
errs := make([]error, len(devices))
|
||||
var wg sync.WaitGroup
|
||||
for i := range devices {
|
||||
log := slog.With("serial", devices[i].serial)
|
||||
log := slog.With("dev", devices[i].target.name, "serial", devices[i].serial)
|
||||
wg.Go(func() {
|
||||
log.Info("flashing", "uf2", devices[i].fw.name)
|
||||
errs[i] = flashDevice(devices[i].target.client, devices[i].fw.uf2, *dryRun, log)
|
||||
|
||||
Reference in New Issue
Block a user