Mercurial > go > multipass
view cmds/multipass-remove/remove.go @ 17:342f63116bfd
Move commands to canonical Go locations, so go install works.
author | Paul Fisher <paul@pfish.zone> |
---|---|
date | Fri, 30 Oct 2015 00:18:13 -0400 |
parents | multipass-remove.go@e246c8a4d28e |
children |
line wrap: on
line source
// multipass-remove allows a user to remove an entry from their multipass database. package main import ( "bufio" "fmt" "os" "strconv" "pfish.zone/go/multipass/file" ) func main() { passfile, err := file.ForMe() if err != nil { fmt.Println(err.Error()) os.Exit(1) } fmt.Println("Choose a password to remove:") reader := bufio.NewReader(os.Stdin) entries, err := passfile.AllEntries() for i, entry := range entries { fmt.Printf("%2d: %s\n", i+1, entry.Description()) } fmt.Print("Enter the number to remove: ") text, err := reader.ReadString('\n') if err != nil { fmt.Println(err.Error()) os.Exit(1) } picked, err := strconv.Atoi(text[:len(text)-1]) if err != nil { fmt.Println("Not a valid number") os.Exit(1) } picked -= 1 if picked < 0 || len(entries) <= picked { fmt.Println("Not a valid selection") os.Exit(1) } if err := passfile.Remove(entries[picked].ID()); err != nil { fmt.Printf("Couldn't remove password: %s\n", err.Error()) os.Exit(1) } fmt.Println("Removed password entry.") }