Mercurial > go > multipass
view cmds/multipass-remove/remove.go @ 18:00d30c67b56d
Put all the library stuff into multipass/file.
author | Paul Fisher <paul@pfish.zone> |
---|---|
date | Sun, 01 Nov 2015 12:16:51 -0500 |
parents | 342f63116bfd |
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.") }