# HG changeset patch # User Paul Fisher # Date 1445788133 14400 # Node ID e246c8a4d28e37fc35d476097604778f31ec460a # Parent 1246b4b9028bccabc76dc1add4dd3e2760c850d4 Actually add the remove command. diff -r 1246b4b9028b -r e246c8a4d28e multipass-remove.go --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/multipass-remove.go Sun Oct 25 11:48:53 2015 -0400 @@ -0,0 +1,48 @@ +// 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.") +}