transmission: added port completion

This commit is contained in:
rsteube 2024-04-03 00:49:13 +02:00
parent 9ff97c66e0
commit 6197382e78
3 changed files with 14 additions and 1 deletions

View File

@ -2,6 +2,7 @@ package cmd
import (
"github.com/carapace-sh/carapace"
"github.com/carapace-sh/carapace-bin/pkg/actions/net"
"github.com/carapace-sh/carapace-bin/pkg/actions/tools/transmission"
"github.com/spf13/cobra"
)
@ -50,6 +51,7 @@ func init() {
"config-dir": carapace.ActionDirectories().Chdir("/"),
"download-dir": carapace.ActionDirectories().Chdir("/"),
"finish": carapace.ActionFiles().Chdir("/"),
"port": net.ActionPorts(),
"tos": transmission.ActionTOS(),
})
carapace.Gen(rootCmd).PositionalCompletion(carapace.ActionFiles(".torrent", ".magnet"))

View File

@ -81,6 +81,7 @@ func init() {
"download-dir": carapace.ActionDirectories().Chdir("/"),
"logfile": carapace.ActionFiles().Chdir("/"),
"pid-file": carapace.ActionFiles().Chdir("/"),
"port": net.ActionPorts(),
"rpc-bind-address": net.ActionIpv4Addresses(),
"watch": carapace.ActionDirectories().Chdir("/"),
})

View File

@ -195,13 +195,23 @@ func init() {
"move": carapace.ActionDirectories().Chdir("/"),
"netrc": carapace.ActionFiles(),
"no-get": carapace.ActionValuesDescribed("all", "Get all files").StyleF(style.ForKeyword),
"port": net.ActionKnownPorts(),
"torrent": carapace.ActionCallback(func(c carapace.Context) carapace.Action {
filters, _ := rootCmd.Flags().GetStringArray("filter")
return transmission.ActionIds(filters)
}),
"torrent-done-script": carapace.ActionDirectories().Chdir("/"),
})
carapace.Gen(rootCmd).PositionalCompletion(net.ActionHosts())
carapace.Gen(rootCmd).PositionalCompletion(
carapace.ActionMultiPartsN(":", 2, func(c carapace.Context) carapace.Action {
switch len(c.Parts) {
case 0:
return net.ActionHosts()
default:
return net.ActionKnownPorts()
}
}),
)
}
// Marks the flags so they're exclusive with --torrent