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 ++++++++++++++++++++++++++++ commands/next-folder.go | 15 +++++++++++++++ commands/prev-folder.go | 15 +++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 commands/commands.go create mode 100644 commands/next-folder.go create mode 100644 commands/prev-folder.go (limited to 'commands') 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) +} diff --git a/commands/next-folder.go b/commands/next-folder.go new file mode 100644 index 0000000..02975e1 --- /dev/null +++ b/commands/next-folder.go @@ -0,0 +1,15 @@ +package commands + +import ( + "git.sr.ht/~sircmpwn/aerc2/widgets" +) + +func init() { + Register("next-folder", NextFolder) +} + +func NextFolder(aerc *widgets.Aerc, cmd string) error { + acct := aerc.SelectedAccount() + acct.Directories().Next() + return nil +} diff --git a/commands/prev-folder.go b/commands/prev-folder.go new file mode 100644 index 0000000..a38214f --- /dev/null +++ b/commands/prev-folder.go @@ -0,0 +1,15 @@ +package commands + +import ( + "git.sr.ht/~sircmpwn/aerc2/widgets" +) + +func init() { + Register("prev-folder", PrevFolder) +} + +func PrevFolder(aerc *widgets.Aerc, cmd string) error { + acct := aerc.SelectedAccount() + acct.Directories().Prev() + return nil +} -- cgit v1.2.3