From acfe7d7625192bc856d5d696f741e35ce38cab25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20G=C3=BCnzler?= Date: Sat, 8 Jun 2019 19:41:56 +0200 Subject: 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. --- config/binds.conf | 2 ++ config/config.go | 4 ++++ 2 files changed, 6 insertions(+) (limited to 'config') 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 = :view d = :confirm 'Really delete this message?' ':delete-message' D = :delete +A = :archive flat C = :compose @@ -54,6 +55,7 @@ Rq = :reply -aq = :prev-part = :next-part S = :save +A = :archive flat [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 } -- cgit v1.2.3