github.com/gofiber/fiber-cli@v0.0.3/cmd/upgrade.go (about) 1 package cmd 2 3 import ( 4 "fmt" 5 "os" 6 7 "github.com/muesli/termenv" 8 9 "github.com/spf13/cobra" 10 ) 11 12 var upgradeCmd = &cobra.Command{ 13 Use: "upgrade", 14 Short: "Upgrade Fiber cli if a newer version is available", 15 RunE: upgradeRunE, 16 } 17 18 func upgradeRunE(cmd *cobra.Command, _ []string) error { 19 cliLatestVersion, err := latestVersion(true) 20 if err != nil { 21 return err 22 } 23 24 if version != cliLatestVersion { 25 upgrade(cmd, cliLatestVersion) 26 } else { 27 msg := fmt.Sprintf("Currently Fiber cli is the latest version %s.", cliLatestVersion) 28 cmd.Println(termenv.String(msg). 29 Foreground(termenv.ANSIBrightBlue)) 30 } 31 32 return nil 33 } 34 35 func upgrade(cmd *cobra.Command, cliLatestVersion string) { 36 upgrader := execCommand("go", "get", "-u", "github.com/gofiber/fiber-cli/fiber") 37 upgrader.Env = append(upgrader.Env, os.Environ()...) 38 upgrader.Env = append(upgrader.Env, "GO111MODULE=off") 39 if err := runCmd(upgrader); err != nil { 40 cmd.Printf("fiber: failed to upgrade: %v", err) 41 return 42 } 43 44 success := fmt.Sprintf("Done! Fiber-cli is now at v%s!", cliLatestVersion) 45 cmd.Println(termenv.String(success).Foreground(termenv.ANSIBrightGreen)) 46 }