shell-completion: update systemd-run bash completion
authorEvgeny Vereshchagin <evvers@ya.ru>
Thu, 27 Aug 2015 23:24:15 +0000 (23:24 +0000)
committerEvgeny Vereshchagin <evvers@ya.ru>
Thu, 27 Aug 2015 23:30:11 +0000 (23:30 +0000)
Many new options have been added since the bash completion was last
updated.

shell-completion/bash/systemd-run

index 712655c..63c831b 100644 (file)
@@ -34,10 +34,16 @@ _systemd_run() {
     local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
     local OPTS='-h --help --version --user --system --scope --unit --description --slice
                 -r --remain-after-exit --send-sighup -H --host -M --machine --service-type
+                --on-active --on-boot --on-startup --on-unit-active --on-unit-inactive
+                --on-calendar --timer-property -t --pty -q --quiet --no-block
                 --uid --gid --nice --setenv -p --property'
 
     local mode=--system
     local i
+    local opts_with_values=(
+        --unit --description --slice --service-type -H --host -M --machine -p --property --on-active
+        --on-boot --on-startup --on-unit-active --on-unit-inactive --on-calendar --timer-property
+    )
     for (( i=1; i <= COMP_CWORD; i++ )); do
         if [[ ${COMP_WORDS[i]} != -* ]]; then
             local root_command=${COMP_WORDS[i]}
@@ -47,11 +53,11 @@ _systemd_run() {
 
         [[ ${COMP_WORDS[i]} == "--user" ]] && mode=--user
 
-        [[ $i -lt $COMP_CWORD && ${COMP_WORDS[i]} == @(--unit|--description|--slice|--service-type|-H|--host|-M|--machine|-p|--property) ]] && ((i++))
+        [[ $i -lt $COMP_CWORD && " ${opts_with_values[@]} " =~ " ${COMP_WORDS[i]} " ]] && ((i++))
     done
 
     case "$prev" in
-        --unit|--description)
+        --unit|--description|--on-active|--on-boot|--on-startup|--on-unit-active|--on-unit-inactive|--on-calendar)
             # argument required but no completions available
             return
             ;;
@@ -92,6 +98,11 @@ _systemd_run() {
             COMPREPLY=( $(compgen -W '$comps' -- "$cur") )
             return 0
             ;;
+        --timer-property)
+            local comps='AccuracySec= WakeSystem='
+            COMPREPLY=( $(compgen -W '$comps' -- "$cur") )
+            return 0
+            ;;
     esac
 
     COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") )