summary refs log tree commit diff stats
path: root/config/config.go
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/config.go
parent35f57321f8d53dba2c1a2480aaa5860333e1c269 (diff)
downloadaerc-acfe7d7625192bc856d5d696f741e35ce38cab25.tar.gz
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/config.go')
-rw-r--r--config/config.go4
1 files changed, 4 insertions, 0 deletions
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
 			}