github.com/grantbow/bug@v0.3.1/bugapp/Identifier.go (about) 1 package bugapp 2 3 import ( 4 "crypto/sha1" 5 "fmt" 6 "github.com/driusan/bug/bugs" 7 "os" 8 "strings" 9 ) 10 11 func generateID(val string) string { 12 hash := sha1.Sum([]byte(val)) 13 return fmt.Sprintf("b%x", hash)[0:5] 14 } 15 func Identifier(args ArgumentList) { 16 if len(args) < 1 { 17 fmt.Printf("Usage: %s identifier BugID [value]\n", os.Args[0]) 18 return 19 } 20 21 b, err := bugs.LoadBugByHeuristic(args[0]) 22 if err != nil { 23 fmt.Printf("Invalid BugID: %s\n", err.Error()) 24 return 25 } 26 if len(args) > 1 { 27 var newValue string 28 if args.HasArgument("--generate") { 29 newValue = generateID(b.Title("")) 30 fmt.Printf("Generated id %s for bug\n", newValue) 31 } else { 32 newValue = strings.Join(args[1:], " ") 33 } 34 err := b.SetIdentifier(newValue) 35 if err != nil { 36 fmt.Printf("Error setting identifier: %s", err.Error()) 37 } 38 } else { 39 val := b.Identifier() 40 if val == "" { 41 fmt.Printf("Identifier not defined\n") 42 } else { 43 fmt.Printf("%s\n", val) 44 } 45 } 46 }