add 'fix' flag

This commit is contained in:
Jeff Carr 2025-09-25 15:45:32 -05:00
parent 3bdf0143be
commit f4838d7500
3 changed files with 17 additions and 31 deletions

View File

@ -67,6 +67,7 @@ type RepoCmd struct {
}
type NormalCmd struct {
Fix *EmptyCmd `arg:"subcommand:fix" help:"try to fix problems"`
On *EmptyCmd `arg:"subcommand:on" help:"turn normal mode on"`
Off *EmptyCmd `arg:"subcommand:off" help:"turn normal mode off"`
}

View File

@ -94,18 +94,19 @@ func doClean() error {
// when publishing, clean out the details of that if it's still there
if repo.GetTargetVersion() != "" {
repo.SetTargetVersion("")
configSave = true
}
// try to delete user
if err := doRepoCleanUser(repo); err != nil {
if err == ErrorBranchUnique {
if argv.Clean.Fix != nil {
bname := repo.GetUserBranchName()
s := fmt.Sprintf("delete this odd user %bname branch %s?", bname, repo.FullPath)
s := fmt.Sprintf("delete this odd user (%s) branch %s?", bname, repo.FullPath)
if fhelp.QuestionUser(s) {
repo.RunVerbose([]string{"git", "branch", "-D", bname})
// repo.RunVerbose([]string{"git", "checkout", bname})
}
}
} else {
log.Info(repo.GetGoPath(), err)
}
@ -187,13 +188,14 @@ func doRepoCleanDevel(repo *gitpb.Repo) error {
}
if err := justDeleteTheDevelBranchAlready(repo); err != nil {
log.Info("justDeleteTheDevel() err", repo.GetGoPath(), err)
if argv.Clean.Fix != nil {
bname := repo.GetDevelBranchName()
s := fmt.Sprintf("delete this odd devel %bname branch %s?", bname, repo.FullPath)
s := fmt.Sprintf("delete this odd devel (%s) branch %s?", bname, repo.FullPath)
if fhelp.QuestionUser(s) {
repo.RunVerbose([]string{"git", "branch", "-D", bname})
// repo.RunVerbose([]string{"git", "checkout", bname})
}
configSave = true
}
return err
}
return nil

View File

@ -15,7 +15,6 @@ import (
"go.wit.com/lib/config"
"go.wit.com/lib/fhelp"
"go.wit.com/lib/gui/shell"
"go.wit.com/lib/protobuf/forgepb"
"go.wit.com/lib/protobuf/gitpb"
"go.wit.com/log"
)
@ -35,7 +34,7 @@ func doNormal() bool {
}
repo := me.forge.Repos.FindByFullPath(path)
if stat.Err == ErrorLocalDevelBranch {
if me.forge.Config.Mode == forgepb.ForgeMode_NORMAL {
if argv.Normal.Fix != nil {
bname := repo.GetDevelBranchName()
s := fmt.Sprintf("repair the %s branch on %s", bname, repo.FullPath)
if fhelp.QuestionUser(s) {
@ -46,7 +45,7 @@ func doNormal() bool {
}
}
if stat.Err == ErrorLocalMasterBranch {
if me.forge.Config.Mode == forgepb.ForgeMode_NORMAL {
if argv.Normal.Fix != nil {
bname := repo.GetMasterBranchName()
s := fmt.Sprintf("repair the %s branch on %s", bname, repo.FullPath)
if fhelp.QuestionUser(s) {
@ -125,25 +124,9 @@ func checkNormalRepoState(repo *gitpb.Repo) error {
if !repo.VerifyRemoteAndLocalBranches(repo.GetDevelBranchName()) {
return ErrorLocalDevelBranch
/*
bname := repo.GetDevelBranchName()
s := fmt.Sprintf("repair the %s branch on %s", bname, repo.FullPath)
if fhelp.QuestionUser(s) {
repo.RunVerbose([]string{"git", "branch", "-D", bname})
repo.RunVerbose([]string{"git", "checkout", bname})
}
*/
}
if !repo.VerifyRemoteAndLocalBranches(repo.GetMasterBranchName()) {
return ErrorLocalMasterBranch
/*
bname := repo.GetMasterBranchName()
s := fmt.Sprintf("repair the %s branch on %s", bname, repo.FullPath)
if fhelp.QuestionUser(s) {
repo.RunVerbose([]string{"git", "branch", "-D", bname})
repo.RunVerbose([]string{"git", "checkout", bname})
}
*/
}
if repo.GetCurrentBranchName() != repo.GetUserBranchName() {