aboutsummaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2019-06-08 19:41:56 +0200
committerDrew DeVault <sir@cmpwn.com>2019-06-09 11:33:50 -0400
commitacfe7d7625192bc856d5d696f741e35ce38cab25 (patch)
tree64f76ab6927cbb25be95c0ff2e65e063791593a6 /config
parent35f57321f8d53dba2c1a2480aaa5860333e1c269 (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.conf2
-rw-r--r--config/config.go4
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
}