diff --git a/cmd.go b/cmd.go index 0e13ac3f..5c643420 100644 --- a/cmd.go +++ b/cmd.go @@ -361,7 +361,15 @@ func handlePrint() (err error) { case cmdArgs.existsArg("d", "defaultconfig"): fmt.Printf("%#v", config) case cmdArgs.existsArg("n", "numberupgrades"): + err = printNumberOfUpdates() + if err != nil { + return + } case cmdArgs.existsArg("u", "upgrades"): + err = printUpdateList() + if err != nil { + return + } case cmdArgs.existsArg("c", "complete"): switch { case cmdArgs.existsArg("f", "fish"): diff --git a/print.go b/print.go index b07016ed..c5be901a 100644 --- a/print.go +++ b/print.go @@ -2,6 +2,7 @@ package main import ( "fmt" + "os" "strings" rpc "github.com/mikkeloscar/aur" @@ -263,3 +264,36 @@ func printMissing(missing stringSet) { } fmt.Println() } + +//todo make it less hacky +func printNumberOfUpdates() error { + old := os.Stdout // keep backup of the real stdout + os.Stdout = nil + aurUp, repoUp, err := upList() + os.Stdout = old // restoring the real stdout + if err != nil { + return err + } + fmt.Println(len(aurUp) + len(repoUp)) + return nil +} + +//todo make it less hacky +func printUpdateList() error { + old := os.Stdout // keep backup of the real stdout + os.Stdout = nil + aurUp, repoUp, err := upList() + os.Stdout = old // restoring the real stdout + if err != nil { + return err + } + for _, pkg := range repoUp { + fmt.Println(pkg.Name) + } + + for _, pkg := range aurUp { + fmt.Println(pkg.Name) + } + + return nil +}