Mercurial > go > multipass
view remove.go @ 20:ef2ef22ca4b1 default tip
Add pfish.zone/go/multipass/file import directive to 'file' package.
author | Paul Fisher <paul@pfish.zone> |
---|---|
date | Sun, 01 Nov 2015 13:00:54 -0500 |
parents | 58fe867c9ecf |
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 remove(passfile *file.ShadowFile, input *bufio.Reader) int { 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()) return 1 } picked, err := strconv.Atoi(text[:len(text)-1]) if err != nil { fmt.Println("Not a valid number") return 1 } picked -= 1 if picked < 0 || len(entries) <= picked { fmt.Println("Not a valid selection") return 1 } if err := passfile.Remove(entries[picked].ID()); err != nil { fmt.Printf("Couldn't remove password: %s\n", err.Error()) return 1 } fmt.Println("Removed password entry.") return 0 }