diff options
| -rw-r--r-- | doConfig.go | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/doConfig.go b/doConfig.go index 52581c8..cc2210e 100644 --- a/doConfig.go +++ b/doConfig.go @@ -1,6 +1,9 @@ package main import ( + "os" + + "go.wit.com/lib/protobuf/forgepb" "go.wit.com/log" ) @@ -23,6 +26,47 @@ func doConfig() { } } + // try to add, then save config and exit + if argv.Config.Add != nil { + log.Info("going to add a new repo", argv.Config.Add.GoPath) + deleteGoPath(me.forge, argv.Config.Add.GoPath) + new1 := forgepb.ForgeConfig{ + GoPath: argv.Config.Add.GoPath, + Writable: argv.Config.Add.Writable, + ReadOnly: argv.Config.Add.ReadOnly, + Private: argv.Config.Add.Private, + Directory: argv.Config.Add.Directory, + Favorite: argv.Config.Add.Favorite, + Interesting: argv.Config.Add.Interesting, + MasterBranchName: argv.Config.Add.Master, + DevelBranchName: argv.Config.Add.Devel, + UserBranchName: argv.Config.Add.User, + } + + if me.forge.Config.Append(&new1) { + log.Info("added", new1.GoPath, "ok") + } else { + log.Info("added", new1.GoPath, "failed") + os.Exit(-1) + } + me.forge.ConfigSave() + os.Exit(0) + } + me.forge.ConfigPrintTable() okExit("") } + +func deleteGoPath(f *forgepb.Forge, gopath string) bool { + var deleted bool = false + for { + if f.Config.DeleteByGoPath(gopath) { + log.Info("deleted ok", gopath) + deleted = true + } else { + log.Info("did not delete", gopath) + break + } + } + return deleted +} |
