aboutsummaryrefslogtreecommitdiffstats
path: root/commands/msgview/save.go
diff options
context:
space:
mode:
authorRobin Jarry <robin@jarry.cc>2023-10-22 23:23:18 +0200
committerRobin Jarry <robin@jarry.cc>2023-10-28 19:25:10 +0200
commitabe228b14d97d8d47e8ff4406de387fac45cfe68 (patch)
tree56117403d1ae32d7253f86bab01a944a3cf225b9 /commands/msgview/save.go
parent30851656591293ed2e19340ab78c937855a11143 (diff)
downloadaerc-abe228b14d97d8d47e8ff4406de387fac45cfe68.tar.gz
commands: use completion from go-opt
Implement command completion with complete struct field tags from the get-opt library introduced earlier. Changelog-changed: Improved command completion. Signed-off-by: Robin Jarry <robin@jarry.cc> Reviewed-by: Koni Marti <koni.marti@gmail.com> Tested-by: Moritz Poldrack <moritz@poldrack.dev> Tested-by: Inwit <inwit@sindominio.net>
Diffstat (limited to 'commands/msgview/save.go')
-rw-r--r--commands/msgview/save.go12
1 files changed, 5 insertions, 7 deletions
diff --git a/commands/msgview/save.go b/commands/msgview/save.go
index ea7599d3..9f2b71fc 100644
--- a/commands/msgview/save.go
+++ b/commands/msgview/save.go
@@ -22,7 +22,7 @@ type Save struct {
CreateDirs bool `opt:"-p"`
Attachments bool `opt:"-a"`
AllAttachments bool `opt:"-A"`
- Path string `opt:"..." required:"false" metavar:"<path>"`
+ Path string `opt:"path" required:"false" complete:"CompletePath"`
}
func init() {
@@ -37,14 +37,12 @@ func (Save) Aliases() []string {
return []string{"save"}
}
-func (s Save) Complete(args []string) []string {
- trimmed := commands.Operands(args, s.Options())
- path := strings.Join(trimmed, " ")
+func (*Save) CompletePath(arg string) []string {
defaultPath := config.General.DefaultSavePath
- if defaultPath != "" && !isAbsPath(path) {
- path = filepath.Join(defaultPath, path)
+ if defaultPath != "" && !isAbsPath(arg) {
+ arg = filepath.Join(defaultPath, arg)
}
- return commands.CompletePath(xdg.ExpandHome(path))
+ return commands.CompletePath(xdg.ExpandHome(arg))
}
func (s Save) Execute(args []string) error {