summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-11-21 19:48:53 -0600
committerJeff Carr <[email protected]>2024-11-21 19:48:53 -0600
commit6f6f28a22a479c80be7bb99cfdea4244cb667194 (patch)
tree88716418433148a2fd60613621e314a8349ec8e3
parent1f0a18a0a8e21a831dbc002b8b4110298739b875 (diff)
minor fixupsv0.0.7
-rw-r--r--apt.go6
-rw-r--r--config.go22
2 files changed, 24 insertions, 4 deletions
diff --git a/apt.go b/apt.go
index cf8a4fd..a6a68cb 100644
--- a/apt.go
+++ b/apt.go
@@ -15,6 +15,10 @@ func (me *Machine) initPackages() {
return
}
+ if me.Packages == nil {
+ me.Packages = new(Packages)
+ }
+
// Print the installed packages and their versions
for pkg, version := range newP {
new1 := new(Package)
@@ -37,7 +41,7 @@ func (me *Machine) addNew(name string, version string) bool {
return me.Packages.Append(new1)
}
-func (me *Machine) updatePackages() string {
+func (me *Machine) UpdatePackages() string {
// Get the list of installed packages for the detected distro
newP, err := getPackageList(me.Distro)
if err != nil {
diff --git a/config.go b/config.go
index 03c81c5..cf41cbe 100644
--- a/config.go
+++ b/config.go
@@ -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