// Copyright 2017-2025 WIT.COM Inc. All rights reserved. // Use of this source code is governed by the GPL 3.0 package main import ( "go.wit.com/lib/protobuf/forgepb" "go.wit.com/log" ) func doConfig() (string, error) { argcfg := argv.Config if argcfg.Delete != "" { me.forge.DeleteByGoPath(argcfg.Delete) me.forge.SetConfigSave(true) okExit("") } /* if argcfg.Register != "" { if err := doRegister(argcfg.Register); err == nil { okExit("attempting to register " + argcfg.Register) } else { badExit(err) } } */ // try to add, then save config and exit if argcfg.Add != nil { log.Info("going to add a new repo", argcfg.Add.Namespace) deleteGoPath(me.forge, argcfg.Add.Namespace) new1 := forgepb.ForgeConfig{ Namespace: argcfg.Add.Namespace, GoPath: argcfg.Add.Namespace, Writable: argcfg.Add.Writable, ReadOnly: argcfg.Add.ReadOnly, Private: argcfg.Add.Private, Directory: argcfg.Add.Directory, Favorite: argcfg.Add.Favorite, Interesting: argcfg.Add.Interesting, MasterBranchName: argcfg.Add.Master, DevelBranchName: argcfg.Add.Devel, UserBranchName: argcfg.Add.User, } me.forge.Config.Append(&new1) me.forge.Save() return "added", nil } footer := me.forge.Config.PrintTable() return footer, nil } func deleteGoPath(f *forgepb.Forge, gopath string) bool { var deleted bool = false for { if f.Config.DeleteByNamespace(gopath) { log.Info("deleted ok", gopath) deleted = true } else { log.Info("did not delete", gopath) break } } return deleted }