From 952d95273a212065703bab91a7eaed4e908e1f92 Mon Sep 17 00:00:00 2001 From: morganamilo Date: Sat, 30 Dec 2017 22:02:27 +0000 Subject: [PATCH] Fix crash when package version is "invalid" --- upgrade.go | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/upgrade.go b/upgrade.go index e77f679b..bdf52edc 100644 --- a/upgrade.go +++ b/upgrade.go @@ -60,14 +60,9 @@ func (u upSlice) Less(i, j int) bool { // Print prints the details of the packages to upgrade. func (u upSlice) Print(start int) { for k, i := range u { - old, err := pkgb.NewCompleteVersion(i.LocalVersion) - if err != nil { - fmt.Println(i.Name, err) - } - new, err := pkgb.NewCompleteVersion(i.RemoteVersion) - if err != nil { - fmt.Println(i.Name, err) - } + old, errOld := pkgb.NewCompleteVersion(i.LocalVersion) + new, errNew := pkgb.NewCompleteVersion(i.RemoteVersion) + var left, right string f := func(name string) (color int) { var hash = 5381 @@ -79,16 +74,18 @@ func (u upSlice) Print(start int) { fmt.Printf("\x1b[33m%-2d\x1b[0m ", len(u)+start-k-1) fmt.Printf("\x1b[1;%dm%s\x1b[0m/\x1b[1;39m%-25s\t\t\x1b[0m", f(i.Repository), i.Repository, i.Name) - if old.Version != new.Version { - fmt.Printf("\x1b[31m%18s\x1b[0m-%s -> \x1b[1;32m%s\x1b[0m-%s\x1b[0m", - old.Version, old.Pkgrel, - new.Version, new.Pkgrel) + if errOld != nil { + left = fmt.Sprintf("\x1b[31m%20s\x1b[0m", "Invalid Version") } else { - fmt.Printf("\x1b[0m%18s-\x1b[31m%s\x1b[0m -> %s-\x1b[32m%s\x1b[0m", - old.Version, old.Pkgrel, - new.Version, new.Pkgrel) + left = fmt.Sprintf("\x1b[31m%18s\x1b[0m-%s", old.Version, old.Pkgrel) } - print("\n") + + if errNew != nil { + right = fmt.Sprintf("\x1b[31m%s\x1b[0m", "Invalid Version") + } else { + right = fmt.Sprintf("\x1b[31m%s\x1b[0m-%s", new.Version, new.Pkgrel) + } + fmt.Printf("%s -> %s\n", left, right) } }