commands/commands.go (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
package commands import ( "fmt" ) type Command interface { Aliases() []string Execute(cmd string) error } var Commands = make(map[string]Command) func Register(cmd Command) { for _, alias := range cmd.Aliases() { Commands[alias] = cmd } } func ProcessCommands(cmd string) { for k, v := range Commands { if cmd == k { err := v.Execute(cmd) if err != nil { fmt.Errorf("error: executing %s failed: %+v\n", cmd, err) } } } } |