github.com/sakana/etcdctl@v0.1.2-0.20130925194301-eab7435d452d/command.go (about) 1 package main 2 3 import ( 4 "errors" 5 ) 6 7 type Command struct { 8 usage string 9 minArgs int 10 maxArgs int 11 f func(args []string) error 12 } 13 14 var commands = make(map[string]*Command) 15 16 func registerCommand(name string, usage string, minArgs int, maxArgs int, f func(args []string) error) error { 17 _, ok := commands[name] 18 if ok { 19 return errors.New("duplicate command name") 20 } 21 22 commands[name] = &Command{ 23 usage: usage, 24 minArgs: minArgs, 25 maxArgs: maxArgs, 26 f: f, 27 } 28 return nil 29 }