comparison 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
comparison
equal deleted inserted replaced
16:bfc035bd5132 17:342f63116bfd
1 // multipass-remove allows a user to remove an entry from their multipass database.
2
3 package main
4
5 import (
6 "bufio"
7 "fmt"
8 "os"
9 "strconv"
10
11 "pfish.zone/go/multipass/file"
12 )
13
14 func main() {
15 passfile, err := file.ForMe()
16 if err != nil {
17 fmt.Println(err.Error())
18 os.Exit(1)
19 }
20 fmt.Println("Choose a password to remove:")
21 reader := bufio.NewReader(os.Stdin)
22 entries, err := passfile.AllEntries()
23 for i, entry := range entries {
24 fmt.Printf("%2d: %s\n", i+1, entry.Description())
25 }
26 fmt.Print("Enter the number to remove: ")
27 text, err := reader.ReadString('\n')
28 if err != nil {
29 fmt.Println(err.Error())
30 os.Exit(1)
31 }
32 picked, err := strconv.Atoi(text[:len(text)-1])
33 if err != nil {
34 fmt.Println("Not a valid number")
35 os.Exit(1)
36 }
37 picked -= 1
38 if picked < 0 || len(entries) <= picked {
39 fmt.Println("Not a valid selection")
40 os.Exit(1)
41 }
42
43 if err := passfile.Remove(entries[picked].ID()); err != nil {
44 fmt.Printf("Couldn't remove password: %s\n", err.Error())
45 os.Exit(1)
46 }
47 fmt.Println("Removed password entry.")
48 }