aboutsummaryrefslogtreecommitdiffhomepage
path: root/share/completions/systemctl.fish
diff options
context:
space:
mode:
authorGravatar Fabian Homborg <FHomborg@gmail.com>2015-02-19 20:25:55 +0100
committerGravatar ridiculousfish <corydoras@ridiculousfish.com>2015-03-06 23:05:24 -0800
commit468648ff5172690e1e19f85b4454bcd5c77bbe37 (patch)
tree5a89208d5137a61d8cdbbb6689bdf147146f423d /share/completions/systemctl.fish
parent8c41a053feee045049f4381bb59bd0817d0cc0ef (diff)
systemctl completions: Improve option handling
Diffstat (limited to 'share/completions/systemctl.fish')
-rw-r--r--share/completions/systemctl.fish22
1 files changed, 12 insertions, 10 deletions
diff --git a/share/completions/systemctl.fish b/share/completions/systemctl.fish
index b57bf567..11da1625 100644
--- a/share/completions/systemctl.fish
+++ b/share/completions/systemctl.fish
@@ -61,14 +61,14 @@ complete -f -c systemctl -n "__fish_seen_subcommand_from isolate" -a '(__fish_sy
complete -f -c systemctl -n "__fish_seen_subcommand_from set-default" -a '(__fish_systemctl_targets)' -d 'Target'
complete -f -c systemctl -n "__fish_seen_subcommand_from set-default" -a '(__fish_systemctl_services)' -d 'Service'
-complete -f -c systemctl -s t -l type -d 'List of unit types' -xa 'help service, mount, socket, target,'
+complete -f -c systemctl -s t -l type -d 'List of unit types' -xa 'service mount socket target slice scope swap snapshot automount timer path'
complete -f -c systemctl -l state -d 'List of unit states' -xa 'LOAD, SUB, ACTIVE,'
complete -f -c systemctl -s p -l property -d 'Properties displayed in the "show" command' -a '(__fish_systemd_properties)'
complete -f -c systemctl -s a -l all -d 'Show all units or properties'
complete -f -c systemctl -s r -l recursive -d 'Show also units of local containers'
complete -f -c systemctl -l reverse -d 'Show reverse dependencies between units'
-complete -f -c systemctl -l after -d 'Show units ordered before specified unit'
-complete -f -c systemctl -l before -d 'Show units ordered after specified unit'
+complete -f -c systemctl -l after -d 'Show units ordered before specified unit' -n "__fish_seen_subcommand_from list-dependencies"
+complete -f -c systemctl -l before -d 'Show units ordered after specified unit' -n "__fish_seen_subcommand_from list-dependencies"
complete -f -c systemctl -s l -l full -d 'Do not ellipsize anything'
complete -f -c systemctl -l show-types -d 'Show the type of the socket'
complete -f -c systemctl -l job-mode -d 'How to deal with queued jobs' -xa 'fail replace replace-irreversibly isolate ignore-dependencies ignore-requirements flush'
@@ -76,22 +76,24 @@ complete -f -c systemctl -s i -l ignore-inhibitors -d 'Ignore inhibitor locks on
complete -f -c systemctl -s q -l quiet -d 'Suppress output to STDOUT'
complete -f -c systemctl -l no-block -d 'Do not wait for the requested operation to finish'
complete -f -c systemctl -l no-legend -d 'Do not print header and footer'
-complete -f -c systemctl -l user -d 'Talk to the service manager of the calling user'
-complete -f -c systemctl -l system -d 'Talk to the service manager of the system.'
+# system and user/global are mutually exclusive
+complete -f -c systemctl -l user -d 'Talk to the service manager of the calling user' -n "not __fish_contains_opt system"
+complete -f -c systemctl -l system -d 'Talk to the service manager of the system.' -n "not __fish_contains_opt system global"
+complete -f -c systemctl -l global -d 'Enable or disable for all users' -n "not __fish_contains_opt system"
complete -f -c systemctl -l no-wall -d 'Do not send wall message before halt'
-complete -f -c systemctl -l global -d 'Enable or disable for all users'
complete -f -c systemctl -l no-reload -d 'Do not reload daemon configuration'
complete -f -c systemctl -l no-ask-password -d 'Disable asking for password'
complete -f -c systemctl -l kill-who -d 'Send signal to which process' -xa 'main control all'
complete -f -c systemctl -s s -l signal -d 'Which signal to send' -xa 'SIGTERM SIGINT SIGSTOP SIGKILL SIGHUP SIGCONT'
complete -f -c systemctl -s f -l force -d 'Overwrite conflicting existing symlinks'
-complete -f -c systemctl -l root -d 'Use alternative root path'
+# --root needs a path
+complete -r -c systemctl -l root -d 'Use alternative root path'
complete -f -c systemctl -l runtime -d 'Make changes only temporarily'
-complete -f -c systemctl -s n -l lines -d 'Number of journal lines to show'
+complete -f -r -c systemctl -s n -l lines -d 'Number of journal lines to show' -a "(seq 1 1000)"
complete -f -c systemctl -s o -l output -d 'Control journal formatting' -xa 'short short-monotonic verbose export json json-pretty json-sse cat'
complete -f -c systemctl -l plain -d 'list-dependencies flat, not as tree'
-complete -f -c systemctl -s H -l host -d 'Execute the operation remotely'
-complete -f -c systemctl -s M -l machine -d 'Execute operation locally'
+complete -f -c systemctl -s H -l host= -d 'Execute the operation remotely' -a "(__fish_print_hostnames)"
+complete -x -c systemctl -s M -l machine= -d 'Execute operation locally' -a "(machinectl --no-legend list)"
complete -f -c systemctl -s h -l help -d 'Print a short help and exit'
complete -f -c systemctl -l version -d 'Print a short version and exit'
complete -f -c systemctl -l no-pager -d 'Do not pipe output into a pager'