diff options
Diffstat (limited to 'config.go')
| -rw-r--r-- | config.go | 85 |
1 files changed, 25 insertions, 60 deletions
@@ -6,7 +6,6 @@ import ( "errors" "os" "os/user" - "path/filepath" "go.wit.com/lib/config" "go.wit.com/lib/protobuf/argvpb" @@ -51,16 +50,18 @@ func (f *Forge) ConfigSave() error { } func (f *Forge) SaveRepos() error { - return f.Repos.ConfigSave(f.Config.ReposPB) + if argvpb.Verbose() { + return f.Repos.SaveVerbose() + } + return f.Repos.Save() } func (f *Forge) SetMode(newmode ForgeMode) error { - if f.Config.Mode == newmode { + if f.Mode == newmode { // nothing changed return nil } - f.Config.Mode = newmode - err := f.Config.SaveVerbose() + err := config.Set("mode", string(newmode)) return err } @@ -83,37 +84,24 @@ func (cfg *ForgeConfigs) ConfigSave() error { return config.ConfigSaveWithHeader(cfg, header) } -func (cfg *ForgeConfigs) DumpENV() { - log.Info("s/DumpENV/DumpPB/") - cfg.DumpPB() -} - -func (cfg *ForgeConfigs) DumpPB() { - log.Infof("Config.Filename = %s\n", cfg.Filename) - log.Infof("Config.ReposPB = %s\n", cfg.ReposPB) - log.Infof("Config.ReposDir = %s\n", cfg.ReposDir) - log.Infof("Config.PatchPB = %s\n", cfg.PatchPB) - log.Infof("Config.ForgeURL = %s\n", cfg.ForgeURL) - if cfg.GoWork { - log.Infof("Config.GoWork = %v\n", cfg.GoWork) +func (f *Forge) DumpENV() { + if f.Repos == nil { + log.Infof("forge ReposPB = <nil>\n") + } else { + log.Infof("forge ReposPB = %s\n", f.Repos.Filename) } - // log.Infof("ConfigCfgPB.Hostname=%s\n", cfg.Hostname) + log.Infof("forge PatchPB = %s\n", f.Patches.Filename) + DumpENV() } -/* - if f.Config.Xterm == "" { - f.Config.Xterm = "xterm" - f.Config.XtermArgv = append(f.Config.XtermArgv, "-bg") - f.Config.XtermArgv = append(f.Config.XtermArgv, "black") - f.Config.XtermArgv = append(f.Config.XtermArgv, "-fg") - f.Config.XtermArgv = append(f.Config.XtermArgv, "white") - f.SetConfigSave(true) - } -*/ +func DumpENV() { + log.Infof("forge ReposDir = %s\n", config.Get("ReposDir")) + log.Infof("forge ForgeURL = %s\n", config.Get("ForgeURL")) +} -func LoadStdConfig() (*ForgeConfigs, error) { +func loadStdConfig() (*ForgeConfigs, error) { cfg := NewForgeConfigs() - err := config.ConfigLoad(cfg, "forge", "forge") + err := cfg.loadConfig() // todo: do something here with this error? // right now, handled in forge @@ -129,48 +117,25 @@ func LoadStdConfig() (*ForgeConfigs, error) { } else { log.Info("some other bad problem err=", err) } - - if cfg.Filename == "" { - panic("lib/config broken. filename is blank") - } - return cfg, nil } -func MakeDefaultConfig() (*ForgeConfigs, error) { +func makeDefaultConfig() (*ForgeConfigs, error) { cfg := NewForgeConfigs() // Get fullpath to ~/.config/forge/forge.text - cfg.Filename = config.GetConfigFilename("forge", "forge") + cfg.loadConfig() usr, _ := user.Current() - cfg.Username = usr.Username + config.Set("username", usr.Username) homeDir, _ := os.UserHomeDir() - - cfgdir := filepath.Join(homeDir, ".config/forge") - cfg.HomeDir = cfgdir - os.MkdirAll(cfgdir, 0755) - - cfg.ReposPB = filepath.Join(cfgdir, "repos.pb") - cfg.PatchPB = filepath.Join(cfgdir, "patches.pb") - cfg.ForgeURL = "http://forge.wit.com/" - - cfg.ReposDir = filepath.Join(homeDir, "go/src") // todo: check working directory - os.MkdirAll(cfg.ReposDir, 0755) - - // try new idea using lib/config - config.Set("Username", usr.Username) - config.Set("HomeDir", cfgdir) - config.Set("ReposPB", filepath.Join(cfgdir, "repos.pb")) - config.Set("PatchPB", filepath.Join(cfgdir, "patches.pb")) - config.Set("ForgeURL", "https://forge.grid.wit.com/") - config.Set("ReposDir", filepath.Join(homeDir, "go/src")) + config.Set("homedir", homeDir) cfg.addSampleConfigs() - cfg.DumpENV() + DumpENV() config.SetChanged("forge", true) var err error - if err = cfg.ConfigSave(); err != nil { + if err = cfg.SaveVerbose(); err != nil { log.Info("config save error:", err) } return cfg, err |
