diff options
| author | Reto Brunner <reto@labrat.space> | 2019-06-25 09:23:52 +0200 | 
|---|---|---|
| committer | Drew DeVault <sir@cmpwn.com> | 2019-06-25 10:38:55 -0400 | 
| commit | ccf5c02c3815efbe3b2e495cbc6eaca9f017aefd (patch) | |
| tree | 87322ef29bf403981d40dde34d01c029fb101fee /commands/msgview | |
| parent | ee242a3d0ffc4d9cca884a2ad9047cdd16cd713e (diff) | |
msgview/save: Use defaultSavePath if no path is provided
Diffstat (limited to 'commands/msgview')
| -rw-r--r-- | commands/msgview/save.go | 22 | 
1 files changed, 16 insertions, 6 deletions
| diff --git a/commands/msgview/save.go b/commands/msgview/save.go index eff9c66..59d94b2 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>")  	} -	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 { | 
