]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - shell-completion/bash/systemd-run
Merge pull request #14488 from yuwata/networkctl-show-logs
[thirdparty/systemd.git] / shell-completion / bash / systemd-run
index 4c60130dfa2b88e5e0c663a99ba1ac67f878c0de..707b038d9a8459431fd5388a8d2f29421e0895f3 100644 (file)
 # along with systemd; If not, see <http://www.gnu.org/licenses/>.
 
 __systemctl() {
-        local mode=$1; shift 1
-        systemctl $mode --full --no-legend "$@"
+    local mode=$1; shift 1
+    systemctl $mode --full --no-legend "$@"
 }
 
 __get_slice_units () { __systemctl $1 list-units --all -t slice \
-        | { while read -r a b c d; do echo " $a"; done; }; }
+                           | { while read -r a b c d; do echo " $a"; done; }; }
 
 __get_machines() {
-        local a b
-        machinectl list --no-legend --no-pager | { while read a b; do echo " $a"; done; };
+    local a b
+    machinectl list --no-legend --no-pager | { while read a b; do echo " $a"; done; };
 }
 
 _systemd_run() {
@@ -36,14 +36,15 @@ _systemd_run() {
                 --on-active --on-boot --on-startup --on-unit-active --on-unit-inactive
                 --on-calendar --timer-property --path-property --socket-property -t --pty
                 -q --quiet --no-block --uid --gid --nice -E --setenv -p --property
-                --no-ask-password --wait -P --pipe -G --collect'
+                --no-ask-password --wait -P --pipe -G --collect --working-directory
+                -d --same-dir -S --shell'
 
     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
-        --path-property --socket-property --uid --gid --nice -E --setenv
+        --path-property --socket-property --uid --gid --nice -E --setenv --working-directory
     )
     for (( i=1; i <= COMP_CWORD; i++ )); do
         if [[ ${COMP_WORDS[i]} != -* ]]; then
@@ -79,7 +80,7 @@ _systemd_run() {
                          SendSIGKILL= MemoryLimit= CPUShares= BlockIOWeight= User= Group=
                          DevicePolicy= KillMode= DeviceAllow= BlockIOReadBandwidth=
                          BlockIOWriteBandwidth= BlockIODeviceWeight= Nice= Environment=
-                         KillSignal= FinalKillSignal= LimitCPU= LimitFSIZE= LimitDATA=
+                         KillSignal= RestartKillSignal= FinalKillSignal= LimitCPU= LimitFSIZE= LimitDATA=
                          LimitSTACK= LimitCORE= LimitRSS= LimitNOFILE= LimitAS= LimitNPROC=
                          LimitMEMLOCK= LimitLOCKS= LimitSIGPENDING= LimitMSGQUEUE=
                          LimitNICE= LimitRTPRIO= LimitRTTIME= PrivateTmp= PrivateDevices=
@@ -109,6 +110,17 @@ _systemd_run() {
             COMPREPLY=( $(compgen -W '$comps' -- "$cur") )
             return 0
             ;;
+        --working-directory)
+            local comps
+            if [[ -z $cur ]]; then
+                comps=$(compgen -A directory -- "/" )
+            else
+                comps=$(compgen -A directory -- "$cur" )
+            fi
+            compopt -o filenames
+            COMPREPLY=( $(compgen -W '$comps' -- "$cur" ) )
+            return 0
+            ;;
     esac
 
     COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") )