From 063e4e57c87c5e6c37709c9b327cf60ad80709d6 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Tue, 17 Dec 2024 23:58:43 -0600 Subject: [PATCH] show verbose output from go mod tidy for debugging --- redoGoMod.go | 2 +- run.go | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/redoGoMod.go b/redoGoMod.go index 956b920..cbd6d05 100644 --- a/redoGoMod.go +++ b/redoGoMod.go @@ -41,7 +41,7 @@ func redoGoMod(repo *gitpb.Repo) error { log.Warn("go mod init failed", err) return err } - if err := repo.StrictRun([]string{"go", "mod", "tidy", "-go=1.21"}); err != nil { + if err := runVerbose(repo.FullPath, []string{"go", "mod", "tidy", "-go=1.21"}); err != nil { log.Warn("go mod tidy failed", err) return err } diff --git a/run.go b/run.go index ac20c0a..be68eb8 100644 --- a/run.go +++ b/run.go @@ -68,3 +68,41 @@ func runStrict(wd string, cmd []string) { log.Info(i, line) } } + +func runVerbose(wd string, cmd []string) error { + var err error + log.DaemonMode(true) + defer log.DaemonMode(false) + if wd != "" { + if err = os.Chdir(wd); err != nil { + return fmt.Errorf("cd %s failed %v", wd, err) + } + } + log.Info(wd, "running:", wd, cmd) + // result := shell.Run(cmd) + result := shell.Run(cmd) + if result.Error != nil { + log.Info("cmd failed", wd, cmd, err) + for _, line := range result.Stdout { + log.Info(line) + } + for i, line := range result.Stderr { + log.Info("STDERR:", i, line) + } + return result.Error + } + if result.Exit != 0 { + log.Info("cmd failed", wd, cmd, err) + for _, line := range result.Stdout { + log.Info(line) + } + for i, line := range result.Stderr { + log.Info("STDERR:", i, line) + } + return fmt.Errorf("cmd failed with %d", result.Exit) + } + for _, line := range result.Stdout { + log.Info(line) + } + return nil +}