update auto complete. merge is smarter
This commit is contained in:
parent
684c5b1dad
commit
86ac85dd5b
|
@ -20,12 +20,12 @@ import (
|
||||||
func (args) doBashAuto() {
|
func (args) doBashAuto() {
|
||||||
argv.doBashHelp()
|
argv.doBashHelp()
|
||||||
switch argv.BashAuto[0] {
|
switch argv.BashAuto[0] {
|
||||||
case "list":
|
case "merge":
|
||||||
fmt.Println("--terminals")
|
fmt.Println("--force")
|
||||||
default:
|
default:
|
||||||
if argv.BashAuto[0] == ARGNAME {
|
if argv.BashAuto[0] == ARGNAME {
|
||||||
// list the subcommands here
|
// list the subcommands here
|
||||||
fmt.Println("--pull list")
|
fmt.Println("list merge")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
|
|
31
doList.go
31
doList.go
|
@ -1,7 +1,8 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"regexp"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"go.wit.com/lib/protobuf/forgepb"
|
"go.wit.com/lib/protobuf/forgepb"
|
||||||
"go.wit.com/log"
|
"go.wit.com/log"
|
||||||
|
@ -14,21 +15,37 @@ func doList() error {
|
||||||
badExit(err)
|
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() {
|
for pset := range me.all.IterAll() {
|
||||||
|
if pset.Name == "forge auto commit" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
showPatchsets(pset)
|
showPatchsets(pset)
|
||||||
}
|
}
|
||||||
return nil
|
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 {
|
func showPatchsets(pb *forgepb.Patchset) error {
|
||||||
author := "Author: " + pb.GitAuthorName
|
author := "Author: " + pb.GitAuthorName
|
||||||
author += " <" + pb.GitAuthorEmail + ">"
|
author += " <" + pb.GitAuthorEmail + ">"
|
||||||
|
log.Printf("%-16s %s %s %s\n", string(pb.Uuid)[0:8], pb.Name, pb.Comment, author)
|
||||||
// author := "Author: " + os.Getenv("GIT_AUTHOR_NAME")
|
for _, patch := range pb.Patches.Patches {
|
||||||
// author += " <" + os.Getenv("GIT_AUTHOR_EMAIL") + ">"
|
comment := cleanSubject(patch.Comment)
|
||||||
fmt.Println(pb.Name, pb.Comment, author)
|
log.Printf("\t%-8s %-50s %-50s\n", string(patch.CommitHash)[0:8], patch.Namespace, comment)
|
||||||
for i, patches := range pb.Patches.Patches {
|
|
||||||
log.Info("\tnew patches:", i, patches.CommitHash, patches.Namespace)
|
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
for patch := range pb.IterAll() {
|
for patch := range pb.IterAll() {
|
||||||
|
|
42
doMerge.go
42
doMerge.go
|
@ -5,6 +5,7 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|
||||||
|
"github.com/google/uuid"
|
||||||
"go.wit.com/lib/protobuf/forgepb"
|
"go.wit.com/lib/protobuf/forgepb"
|
||||||
"go.wit.com/log"
|
"go.wit.com/log"
|
||||||
"google.golang.org/protobuf/proto"
|
"google.golang.org/protobuf/proto"
|
||||||
|
@ -12,8 +13,12 @@ import (
|
||||||
|
|
||||||
func doMerge() error {
|
func doMerge() error {
|
||||||
if err := loadConfigfile(); err != nil {
|
if err := loadConfigfile(); err != nil {
|
||||||
|
if argv.Force == true {
|
||||||
|
me.all = forgepb.NewPatchsets()
|
||||||
|
} else {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
mergePatchsets()
|
mergePatchsets()
|
||||||
|
|
||||||
|
@ -24,30 +29,39 @@ func doMerge() error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func findAutoPatchset() *forgepb.Patchset {
|
||||||
|
|
||||||
|
for pset := range me.all.IterAll() {
|
||||||
|
if pset.Name == "forge auto commit" {
|
||||||
|
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)
|
||||||
|
}
|
||||||
|
return fauto
|
||||||
|
}
|
||||||
|
|
||||||
// adds submitted patches not specifically assigned to a patchset
|
// adds submitted patches not specifically assigned to a patchset
|
||||||
// to the generic patchset called "forge auto commit"
|
// to the generic patchset called "forge auto commit"
|
||||||
func addRandomPatch(patch *forgepb.Patch) error {
|
func addRandomPatch(patch *forgepb.Patch) error {
|
||||||
var fauto *forgepb.Patchset
|
|
||||||
|
|
||||||
// ignore patch if it's already here
|
// ignore patch if it's already here
|
||||||
if findPatch(patch) {
|
if findPatch(patch) {
|
||||||
log.Info("already found patch", patch.CommitHash, patch.Namespace)
|
log.Info("already found patch", patch.CommitHash, patch.Namespace)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
for pset := range me.all.IterAll() {
|
fauto := findAutoPatchset()
|
||||||
if pset.Name == "forge auto commit" {
|
|
||||||
fauto = pset
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if fauto == nil {
|
if fauto == nil {
|
||||||
fauto = new(forgepb.Patchset)
|
return log.Errorf("no default place yet")
|
||||||
fauto.Name = "forge auto commit"
|
|
||||||
fauto.Patches = forgepb.NewPatches()
|
|
||||||
me.all.Patchsets = append(me.all.Patchsets, fauto)
|
|
||||||
log.Warn("had to create 'forge auto commit' patchset")
|
|
||||||
// return log.Errorf("no default place yet")
|
|
||||||
}
|
}
|
||||||
newpb := proto.Clone(patch).(*forgepb.Patch)
|
newpb := proto.Clone(patch).(*forgepb.Patch)
|
||||||
if newpb == nil {
|
if newpb == nil {
|
||||||
|
|
Loading…
Reference in New Issue