diff options
Diffstat (limited to 'config.go')
| -rw-r--r-- | config.go | 22 |
1 files changed, 19 insertions, 3 deletions
@@ -81,14 +81,24 @@ func (m *Machine) ConfigLoad() error { hostname, _ := os.Hostname() fname := hostname + ".pb" - if data, err := m.loadFile(fname); err == nil { + var data []byte + var err error + if data, err = loadFile(fname); err != nil { + // something went wrong loading the file + return err + } + + if data != nil { if err = proto.Unmarshal(data, m); err != nil { log.Warn("broken zookeeper.pb config file", fname) return err } - } else { - return err + return nil } + + m.Hostname = hostname + m.Distro = detectDistro() + m.initPackages() return nil } @@ -97,6 +107,12 @@ func loadFile(filename string) ([]byte, error) { p := filepath.Join(homeDir, ".config/zookeeper") fullname := filepath.Join(p, filename) data, err := os.ReadFile(fullname) + if errors.Is(err, os.ErrNotExist) { + // if file does not exist, just return nil. this + // will cause ConfigLoad() to try the next config file like "forge.text" + // because the user might want to edit the .config by hand + return nil, nil + } if err != nil { // log.Info("open config file :", err) return nil, err |
