func doLogout() error { var identity = *appArgs.identity _, err := os.Lstat(identity) if err != nil { if os.IsNotExist(err) { fmt.Println("No saved credentials at", identity) fmt.Println("Nothing to do.") return nil } } comm.Notice("Important note", []string{ "Note: this command will not invalidate the API key itself.", "If you wish to revoke it (for example, because it's been compromised), you should do so in your user settings:", "", fmt.Sprintf(" %s/user/settings\n\n", *appArgs.address), }) comm.Logf("") if !comm.YesNo("Do you want to erase your saved API key?") { fmt.Println("Okay, not erasing credentials. Bye!") return nil } err = os.Remove(identity) if err != nil { return errors.Wrap(err, 1) } fmt.Println("You've successfully erased the API key that was saved on your computer.") return nil }
func doUpgrade(head bool) error { if head { if !comm.YesNo("Do you want to upgrade to the bleeding-edge version? Things may break!") { comm.Logf("Okay, not upgrading. Bye!") return nil } return applyUpgrade("head", "head") } if version == "head" { comm.Statf("Bleeding-edge, not upgrading unless told to.") comm.Logf("(Use `--head` if you want to upgrade to the latest bleeding-edge version)") return nil } comm.Opf("Looking for upgrades...") currentVer, latestVer, err := queryLatestVersion() if err != nil { return fmt.Errorf("Version check failed: %s", err.Error()) } if latestVer == nil || currentVer.GTE(*latestVer) { comm.Statf("Your butler is up-to-date. Have a nice day!") return nil } comm.Statf("Current version: %s", currentVer.String()) comm.Statf("Latest version : %s", latestVer.String()) if !comm.YesNo("Do you want to upgrade now?") { comm.Logf("Okay, not upgrading. Bye!") return nil } must(applyUpgrade(currentVer.String(), latestVer.String())) return nil }