From b60999c39e11bf4d1e236f2b10a2f895b44d23fb Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sun, 10 Mar 2019 21:15:24 -0400 Subject: Start building out command subsystem --- commands/commands.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 commands/commands.go (limited to 'commands/commands.go') diff --git a/commands/commands.go b/commands/commands.go new file mode 100644 index 0000000..71dabe4 --- /dev/null +++ b/commands/commands.go @@ -0,0 +1,28 @@ +package commands + +import ( + "errors" + + "git.sr.ht/~sircmpwn/aerc2/widgets" +) + +type AercCommand func(aerc *widgets.Aerc, cmd string) error + +var ( + commands map[string]AercCommand +) + +func init() { + commands = make(map[string]AercCommand) +} + +func Register(name string, cmd AercCommand) { + commands[name] = cmd +} + +func ExecuteCommand(aerc *widgets.Aerc, cmd string) error { + if fn, ok := commands[cmd]; ok { + return fn(aerc, cmd) + } + return errors.New("Unknown command " + cmd) +} -- cgit v1.2.3