71 lines
1.6 KiB
Go
71 lines
1.6 KiB
Go
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("")
|
|
}
|