diff options
author | Bence Ferdinandy <bence@ferdinandy.com> | 2024-04-13 13:39:51 +0200 |
---|---|---|
committer | Robin Jarry <robin@jarry.cc> | 2024-04-14 11:51:03 +0200 |
commit | 805a29aef9320545ec113208df5a04e454ac7fb8 (patch) | |
tree | 0de6588f7b47776539ea7b96acf821778ca6c2eb | |
parent | c70c63cbaac8bb78f7d541a2927789c3567ee0e0 (diff) | |
download | aerc-805a29aef9320545ec113208df5a04e454ac7fb8.tar.gz |
attach: use absolute paths instead of relative
Sometimes it is easier to change folders when adding attachments, but
currently we store relative paths, which doesn't work with this. Add the
absolute paths when attaching files.
Replace the current user home dir with ~ to make it prettier in the UI.
Implements: https://todo.sr.ht/~rjarry/aerc/134
Signed-off-by: Bence Ferdinandy <bence@ferdinandy.com>
Acked-by: Robin Jarry <robin@jarry.cc>
-rw-r--r-- | app/compose.go | 4 | ||||
-rw-r--r-- | lib/attachment.go | 3 |
2 files changed, 6 insertions, 1 deletions
diff --git a/app/compose.go b/app/compose.go index 9f9ebf39..38d94359 100644 --- a/app/compose.go +++ b/app/compose.go @@ -8,6 +8,7 @@ import ( "net/textproto" "os" "os/exec" + "path/filepath" "sort" "strconv" "strings" @@ -29,6 +30,7 @@ import ( "git.sr.ht/~rjarry/aerc/lib/state" "git.sr.ht/~rjarry/aerc/lib/templates" "git.sr.ht/~rjarry/aerc/lib/ui" + "git.sr.ht/~rjarry/aerc/lib/xdg" "git.sr.ht/~rjarry/aerc/models" "git.sr.ht/~rjarry/aerc/worker/types" "git.sr.ht/~rockorager/vaxis" @@ -1119,6 +1121,8 @@ func (c *Composer) GetAttachments() []string { } func (c *Composer) AddAttachment(path string) { + path, _ = filepath.Abs(path) + path = xdg.TildeHome(path) c.attachments = append(c.attachments, lib.NewFileAttachment(path)) c.resetReview() } diff --git a/lib/attachment.go b/lib/attachment.go index a5f1b034..4dd3f41d 100644 --- a/lib/attachment.go +++ b/lib/attachment.go @@ -11,6 +11,7 @@ import ( "strings" "git.sr.ht/~rjarry/aerc/lib/log" + "git.sr.ht/~rjarry/aerc/lib/xdg" "github.com/emersion/go-message/mail" "github.com/pkg/errors" ) @@ -68,7 +69,7 @@ func (fa *FileAttachment) Name() string { } func (fa *FileAttachment) WriteTo(w *mail.Writer) error { - f, err := os.Open(fa.path) + f, err := os.Open(xdg.ExpandHome(fa.path)) if err != nil { return errors.Wrap(err, "os.Open") } |