diff options
author | Robert Günzler <r@gnzler.io> | 2019-06-08 19:41:56 +0200 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2019-06-09 11:33:50 -0400 |
commit | acfe7d7625192bc856d5d696f741e35ce38cab25 (patch) | |
tree | 64f76ab6927cbb25be95c0ff2e65e063791593a6 /config | |
parent | 35f57321f8d53dba2c1a2480aaa5860333e1c269 (diff) |
Add archive command
Adds an archive command that moves the current message into the folder
specified in the account config entry.
Supports three layouts at this point:
- flat: puts all messages next to each other
- year: creates a folder per year
- month: same as above, plus folders per month
This also adds a "-p" argument to "cp" and "mv" that works like
"--parents" on mkdir(1). We use this to auto-create the directories
for the archive layout.
Diffstat (limited to 'config')
-rw-r--r-- | config/binds.conf | 2 | ||||
-rw-r--r-- | config/config.go | 4 |
2 files changed, 6 insertions, 0 deletions
diff --git a/config/binds.conf b/config/binds.conf index 2c0476a..3800b7b 100644 --- a/config/binds.conf +++ b/config/binds.conf @@ -28,6 +28,7 @@ K = :prev-folder<Enter> <Enter> = :view<Enter> d = :confirm 'Really delete this message?' ':delete-message<Enter>'<Enter> D = :delete<Enter> +A = :archive flat<Enter> C = :compose<Enter> @@ -54,6 +55,7 @@ Rq = :reply -aq<Enter> <C-k> = :prev-part<Enter> <C-j> = :next-part<Enter> S = :save<space> +A = :archive flat<Enter> [compose] # Keybindings used when the embedded terminal is not selected in the compose diff --git a/config/config.go b/config/config.go index 3ef587b..8e669f7 100644 --- a/config/config.go +++ b/config/config.go @@ -34,6 +34,7 @@ const ( ) type AccountConfig struct { + Archive string CopyTo string Default string From string @@ -115,6 +116,7 @@ func loadAccountConfig(path string) ([]AccountConfig, error) { } sec := file.Section(_sec) account := AccountConfig{ + Archive: "Archive", Default: "INBOX", Name: _sec, Params: make(map[string]string), @@ -137,6 +139,8 @@ func loadAccountConfig(path string) ([]AccountConfig, error) { account.From = val } else if key == "copy-to" { account.CopyTo = val + } else if key == "archive" { + account.Archive = val } else if key != "name" { account.Params[key] = val } |