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