diff options
| author | Jeff Carr <[email protected]> | 2025-01-20 01:40:14 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-01-20 01:40:14 -0600 |
| commit | fb372aad6f0cca032c1ed7577cd7747b4daca7fb (patch) | |
| tree | 32dd9c7e763a1b3241518db4f80bb29479e41a69 | |
| parent | 96f2795bf3a96bdc9929ea1015590bb4695c4de0 (diff) | |
| -rw-r--r-- | doAptUpgrade.go | 70 | ||||
| -rw-r--r-- | doDebian.go (renamed from buildDeb.go) | 0 | ||||
| -rw-r--r-- | main.go | 26 |
3 files changed, 72 insertions, 24 deletions
diff --git a/doAptUpgrade.go b/doAptUpgrade.go new file mode 100644 index 0000000..0245625 --- /dev/null +++ b/doAptUpgrade.go @@ -0,0 +1,70 @@ +package main + +import ( + "fmt" + + "go.wit.com/lib/gui/shell" + "go.wit.com/log" +) + +func doAptUpgrade() { + if argv.DryRun { + log.Info("--dry-run", []string{"apt", "update"}) + } else { + result := shell.Run([]string{"apt", "update"}) + if result.Error != nil { + log.Info("apt update error:", result.Error) + badExit(result.Error) + } + } + + fmt.Println("Installed Packages:") + loop := me.forge.Machine.Wit.SortByName() + for loop.Scan() { + p := loop.Next() + // log.Info("apt install", name) + if me.forge.Machine.IsInstalled(p.Name) { + if argv.DryRun { + log.Info("--dry-run", []string{"apt", "install", p.Name}) + } else { + shell.RunRealtime([]string{"apt", "install", p.Name}) + } + } + } + okExit("installed") +} + +func doAptList() { + log.DaemonMode(true) + defer log.DaemonMode(false) + fmt.Println("Installed Packages:") + loop := me.forge.Machine.Wit.SortByName() + for loop.Scan() { + p := loop.Next() + var end string + var version string + if me.forge.Config.IsPrivate(p.Name) { + end += "(private) " + } + if actualp := me.forge.Machine.FindVersion(p.Name, p.Version); actualp != nil { + // end += "(version match) " + } else { + end += "(version mismatch) " + actualp.Version + " " + version + " " + } + if actualp := me.forge.Machine.FindInstalledByName(p.Name); actualp != nil { + if p.Version != actualp.Version { + end += "(installed " + actualp.Version + " vs " + p.Version + ") " + } else { + end += "(installed ok) " + } + version = actualp.Version + } + if me.forge.Config.IsReadOnly(p.Name) { + // end += " (readonly) " + } else { + end += "(writable) " + } + log.Printf("%-30s %-8s %s\n", p.Name, p.Version, end) // p.PkgName) + } + okExit("") +} diff --git a/buildDeb.go b/doDebian.go index 2761eb7..2761eb7 100644 --- a/buildDeb.go +++ b/doDebian.go @@ -55,33 +55,11 @@ func main() { } if argv.Upgrade != nil { - if argv.DryRun { - log.Info("--dry-run", []string{"apt", "update"}) - } else { - result := shell.Run([]string{"apt", "update"}) - if result.Error != nil { - log.Info("apt update error:", result.Error) - badExit(result.Error) - } - } - - fmt.Println("Installed Packages:") - loop := me.forge.Machine.Wit.SortByName() - for loop.Scan() { - p := loop.Next() - // log.Info("apt install", name) - if me.forge.Machine.IsInstalled(p.Name) { - if argv.DryRun { - log.Info("--dry-run", []string{"apt", "install", p.Name}) - } else { - shell.RunRealtime([]string{"apt", "install", p.Name}) - } - } - } - okExit("installed") + doAptUpgrade() } if argv.ListPkgs != nil { + doAptList() log.DaemonMode(true) defer log.DaemonMode(false) fmt.Println("Installed Packages:") |
