func runCmd(s trib.Storage, args []string) bool { var v string var b bool var lst trib.List var n int var cret uint64 cmd := args[0] switch cmd { case "get": logError(s.Get(single(args), &v)) fmt.Println(v) case "set": logError(s.Set(kva(args), &b)) fmt.Println(b) case "keys": logError(s.Keys(pata(args), &lst)) printList(lst) case "list-get": logError(s.ListGet(single(args), &lst)) printList(lst) case "list-append": logError(s.ListAppend(kva(args), &b)) fmt.Println(b) case "list-remove": logError(s.ListRemove(kva(args), &n)) fmt.Println(n) case "list-keys": logError(s.ListKeys(pata(args), &lst)) printList(lst) case "clock": var c uint64 var e error if len(args) >= 2 { c, e = strconv.ParseUint(args[1], 10, 64) logError(e) } logError(s.Clock(c, &cret)) fmt.Println(cret) case "help": fmt.Println(cmdHelp) case "exit": return true default: logError(fmt.Errorf("bad command, try \"help\".")) } return false }