add merge things

This commit is contained in:
Jeff Carr 2025-01-05 12:02:54 -06:00
parent bab03875d2
commit 22b157f6d7
2 changed files with 67 additions and 0 deletions

44
repo.merge.go Normal file
View File

@ -0,0 +1,44 @@
package gitpb
import (
"github.com/go-cmd/cmd"
"go.wit.com/log"
)
func (rs *Repo) MergeUserToDevel() (*cmd.Status, error) {
startbranch := rs.GetCurrentBranchName()
devel := rs.GetDevelBranchName()
user := rs.GetUserBranchName()
log.Info("MergeUserToDevel() checking out", devel, "started on", startbranch, "merge", user)
var all [][]string
all = append(all, []string{"git", "checkout", devel})
all = append(all, []string{"git", "merge", user})
all = append(all, []string{"git", "push"})
if result, err := rs.RunStrictAll(all); err != nil {
log.Log(GITPBWARN, "MergeUserToDevel() failed", rs.GetFullPath())
return result, err
}
return nil, nil
}
func (rs *Repo) MergeDevelToMaster() (*cmd.Status, error) {
startbranch := rs.GetCurrentBranchName()
devel := rs.GetDevelBranchName()
main := rs.GetMasterBranchName()
log.Info("MergeDevelToMaster() checking out", main, "started on", startbranch, "merge", devel)
var all [][]string
all = append(all, []string{"git", "checkout", main})
all = append(all, []string{"git", "merge", devel})
all = append(all, []string{"git", "push"})
if result, err := rs.RunStrictAll(all); err != nil {
log.Log(GITPBWARN, "MergeDevelToMaster() failed", rs.GetFullPath())
return result, err
}
return nil, nil
}

View File

@ -65,6 +65,19 @@ func (repo *Repo) StrictRun(cmd []string) error {
return nil
}
func (repo *Repo) RunStrictNew(cmd []string) (*cmd.Status, error) {
result := repo.RunQuiet(cmd)
if result.Error != nil {
log.Warn(repo.GetGoPath(), cmd, "wow. golang is cool. an os.Error:", result.Error)
return &result, result.Error
}
if result.Exit != 0 {
log.Warn(cmd, "failed with", result.Exit)
return &result, errors.New(fmt.Sprint(cmd, "failed with", result.Exit))
}
return nil, nil
}
func (repo *Repo) Exists(filename string) bool {
if repo == nil {
return false
@ -121,3 +134,13 @@ func (repo *Repo) RunAll(all [][]string) bool {
}
return true
}
func (repo *Repo) RunStrictAll(all [][]string) (*cmd.Status, error) {
for _, cmd := range all {
log.Log(GITPBWARN, "doAll() RUNNING: cmd =", cmd)
if result, err := repo.RunStrictNew(cmd); err != nil {
return result, err
}
}
return nil, nil
}