From a4d0ef108f830d8a7c3c85e7d5ca7c35568bd0d8 Mon Sep 17 00:00:00 2001 From: Jguer Date: Thu, 25 Jan 2018 20:39:26 +0000 Subject: [PATCH] Fixes #75. Needs sudo. Prints number of updates and update list. --- cmd.go | 8 ++++++++ print.go | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) 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 +}