summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--argvAutoshell.go6
-rw-r--r--doList.go31
-rw-r--r--doMerge.go40
3 files changed, 54 insertions, 23 deletions
diff --git a/argvAutoshell.go b/argvAutoshell.go
index 908c63b..d374360 100644
--- a/argvAutoshell.go
+++ b/argvAutoshell.go
@@ -20,12 +20,12 @@ import (
func (args) doBashAuto() {
argv.doBashHelp()
switch argv.BashAuto[0] {
- case "list":
- fmt.Println("--terminals")
+ case "merge":
+ fmt.Println("--force")
default:
if argv.BashAuto[0] == ARGNAME {
// list the subcommands here
- fmt.Println("--pull list")
+ fmt.Println("list merge")
}
}
os.Exit(0)
diff --git a/doList.go b/doList.go
index 3c8b488..1bacb7c 100644
--- a/doList.go
+++ b/doList.go
@@ -1,7 +1,8 @@
package main
import (
- "fmt"
+ "regexp"
+ "strings"
"go.wit.com/lib/protobuf/forgepb"
"go.wit.com/log"
@@ -14,21 +15,37 @@ func doList() error {
badExit(err)
}
+ // first show the general patchset protobuf
+ for pb := range me.all.IterAll() {
+ if pb.Name == "forge auto commit" {
+ showPatchsets(pb)
+ }
+ }
+
+ // show all the patchsets with Names
for pset := range me.all.IterAll() {
+ if pset.Name == "forge auto commit" {
+ continue
+ }
showPatchsets(pset)
}
return nil
}
+func cleanSubject(line string) string {
+ // Regular expression to remove "Subject:" and "[PATCH...]" patterns
+ re := regexp.MustCompile(`(?i)^Subject:\s*(\[\s*PATCH[^\]]*\]\s*)?`)
+ cleaned := re.ReplaceAllString(line, "")
+ return strings.TrimSpace(cleaned)
+}
+
func showPatchsets(pb *forgepb.Patchset) error {
author := "Author: " + pb.GitAuthorName
author += " <" + pb.GitAuthorEmail + ">"
-
- // author := "Author: " + os.Getenv("GIT_AUTHOR_NAME")
- // author += " <" + os.Getenv("GIT_AUTHOR_EMAIL") + ">"
- fmt.Println(pb.Name, pb.Comment, author)
- for i, patches := range pb.Patches.Patches {
- log.Info("\tnew patches:", i, patches.CommitHash, patches.Namespace)
+ log.Printf("%-16s %s %s %s\n", string(pb.Uuid)[0:8], pb.Name, pb.Comment, author)
+ for _, patch := range pb.Patches.Patches {
+ comment := cleanSubject(patch.Comment)
+ log.Printf("\t%-8s %-50s %-50s\n", string(patch.CommitHash)[0:8], patch.Namespace, comment)
}
/*
for patch := range pb.IterAll() {
diff --git a/doMerge.go b/doMerge.go
index be34b8f..3362c9d 100644
--- a/doMerge.go
+++ b/doMerge.go
@@ -5,6 +5,7 @@ import (
"os"
"path/filepath"
+ "github.com/google/uuid"
"go.wit.com/lib/protobuf/forgepb"
"go.wit.com/log"
"google.golang.org/protobuf/proto"
@@ -12,7 +13,11 @@ import (
func doMerge() error {
if err := loadConfigfile(); err != nil {
- return err
+ if argv.Force == true {
+ me.all = forgepb.NewPatchsets()
+ } else {
+ return err
+ }
}
mergePatchsets()
@@ -24,30 +29,39 @@ func doMerge() error {
return nil
}
-// adds submitted patches not specifically assigned to a patchset
-// to the generic patchset called "forge auto commit"
-func addRandomPatch(patch *forgepb.Patch) error {
- var fauto *forgepb.Patchset
+func findAutoPatchset() *forgepb.Patchset {
- // ignore patch if it's already here
- if findPatch(patch) {
- log.Info("already found patch", patch.CommitHash, patch.Namespace)
- return nil
- }
for pset := range me.all.IterAll() {
if pset.Name == "forge auto commit" {
- fauto = pset
+ return pset
break
}
}
+ var fauto *forgepb.Patchset
+ log.Warn("findAutoPatchset() had to create 'forge auto commit'")
if fauto == nil {
fauto = new(forgepb.Patchset)
fauto.Name = "forge auto commit"
fauto.Patches = forgepb.NewPatches()
+ fauto.Uuid = uuid.New().String()
me.all.Patchsets = append(me.all.Patchsets, fauto)
- log.Warn("had to create 'forge auto commit' patchset")
- // return log.Errorf("no default place yet")
+ }
+ return fauto
+}
+
+// adds submitted patches not specifically assigned to a patchset
+// to the generic patchset called "forge auto commit"
+func addRandomPatch(patch *forgepb.Patch) error {
+
+ // ignore patch if it's already here
+ if findPatch(patch) {
+ log.Info("already found patch", patch.CommitHash, patch.Namespace)
+ return nil
+ }
+ fauto := findAutoPatchset()
+ if fauto == nil {
+ return log.Errorf("no default place yet")
}
newpb := proto.Clone(patch).(*forgepb.Patch)
if newpb == nil {