From ccf5c02c3815efbe3b2e495cbc6eaca9f017aefd Mon Sep 17 00:00:00 2001 From: Reto Brunner Date: Tue, 25 Jun 2019 09:23:52 +0200 Subject: msgview/save: Use defaultSavePath if no path is provided --- commands/msgview/save.go | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'commands/msgview') diff --git a/commands/msgview/save.go b/commands/msgview/save.go index eff9c66f..59d94b2f 100644 --- a/commands/msgview/save.go +++ b/commands/msgview/save.go @@ -3,6 +3,7 @@ package msgview import ( "encoding/base64" "errors" + "fmt" "io" "mime/quotedprintable" "os" @@ -34,10 +35,13 @@ func Save(aerc *widgets.Aerc, args []string) error { mkdirs = true } } - if len(args) <= optind { + if len(args) == optind+1 { + path = args[optind] + } else if defaultPath := aerc.Config().General.DefaultSavePath; defaultPath != "" { + path = defaultPath + } else { return errors.New("Usage: :save [-p] ") } - path = args[optind] mv := aerc.SelectedTab().(*widgets.MessageViewer) p := mv.CurrentPart() @@ -68,15 +72,21 @@ func Save(aerc *widgets.Aerc, args []string) error { } else if os.IsExist(err) && pathIsDir { aerc.PushError("The given directory is an existing file") } - - // Use attachment name as filename if given path is a directory - save_file := filepath.Base(path) - save_dir := filepath.Dir(path) + var ( + save_file string + save_dir string + ) if pathIsDir { save_dir = path if filename, ok := p.Part.DispositionParams["filename"]; ok { save_file = filename + } else { + timestamp := time.Now().Format("2006-01-02-150405") + save_file = fmt.Sprintf("aerc_%v", timestamp) } + } else { + save_file = filepath.Base(path) + save_dir = filepath.Dir(path) } if _, err := os.Stat(save_dir); os.IsNotExist(err) { if mkdirs { -- cgit