summaryrefslogtreecommitdiff
path: root/shell.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-01-18 03:59:44 -0600
committerJeff Carr <[email protected]>2025-01-18 03:59:44 -0600
commitd014dbe3d42d2471aeab43e4d6ab0003e88f21ac (patch)
tree39720d437e10301c95b5e7db5c6bec14fa0a31a7 /shell.go
parent803f0cf98ee1fc01339c4e0b5f9545a5d90a5a2f (diff)
early common things for branch handlingv0.0.55
Diffstat (limited to 'shell.go')
-rw-r--r--shell.go44
1 files changed, 44 insertions, 0 deletions
diff --git a/shell.go b/shell.go
index def6d37..d14960d 100644
--- a/shell.go
+++ b/shell.go
@@ -149,3 +149,47 @@ func (repo *Repo) RunStrictAll(all [][]string) (*cmd.Status, error) {
}
return nil, nil
}
+
+func (repo *Repo) RunVerbose(cmd []string) (*cmd.Status, error) {
+ log.Info("Running:", repo.GetGoPath(), cmd)
+ r, err := repo.RunStrictNew(cmd)
+ if err != nil {
+ log.Info("Error", cmd, err)
+ }
+ for _, line := range r.Stdout {
+ log.Info(line)
+ }
+ for _, line := range r.Stderr {
+ log.Info(line)
+ }
+ return r, err
+}
+
+func (repo *Repo) RunVerboseOnError(cmd []string) (*cmd.Status, error) {
+ r, err := repo.RunStrictNew(cmd)
+ if err == nil {
+ return r, err
+ }
+ log.Info("Run Error:", repo.GetGoPath(), cmd, err)
+ for _, line := range r.Stdout {
+ log.Info(line)
+ }
+ for _, line := range r.Stderr {
+ log.Info(line)
+ }
+ return r, err
+}
+
+// only safe to run len() on STDOUT
+// DO NOT TRY TO PARSE THIS EXCEPT HASH AS FIRST VALUE
+// Intended to be human readable
+func (repo *Repo) ConstructGitDiffLog(branch1, branch2 string) []string {
+ var cmd []string
+ cmd = append(cmd, "git")
+ cmd = append(cmd, "log")
+ cmd = append(cmd, "--format=\"%H %ae %as %s\"")
+ cmd = append(cmd, branch1)
+ cmd = append(cmd, "--not")
+ cmd = append(cmd, branch2)
+ return cmd
+}