]> 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 7379431b71709289305b7b472083c935d58a67d6..707b038d9a8459431fd5388a8d2f29421e0895f3 100644 (file)
@@ -1,9 +1,8 @@
 # systemd-run(1) completion                       -*- shell-script -*-
+# SPDX-License-Identifier: LGPL-2.1+
 #
 # This file is part of systemd.
 #
-# Copyright 2013 Zbigniew JÄ™drzejewski-Szmek
-#
 # systemd is free software; you can redistribute it and/or modify it
 # under the terms of the GNU Lesser General Public License as published by
 # the Free Software Foundation; either version 2.1 of the License, or
 # 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() {
@@ -35,14 +34,17 @@ _systemd_run() {
     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 --no-ask-password'
+                --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 --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 --working-directory
     )
     for (( i=1; i <= COMP_CWORD; i++ )); do
         if [[ ${COMP_WORDS[i]} != -* ]]; then
@@ -78,15 +80,15 @@ _systemd_run() {
                          SendSIGKILL= MemoryLimit= CPUShares= BlockIOWeight= User= Group=
                          DevicePolicy= KillMode= DeviceAllow= BlockIOReadBandwidth=
                          BlockIOWriteBandwidth= BlockIODeviceWeight= Nice= Environment=
-                         KillSignal= LimitCPU= LimitFSIZE= LimitDATA= LimitSTACK=
-                         LimitCORE= LimitRSS= LimitNOFILE= LimitAS= LimitNPROC=
+                         KillSignal= RestartKillSignal= FinalKillSignal= LimitCPU= LimitFSIZE= LimitDATA=
+                         LimitSTACK= LimitCORE= LimitRSS= LimitNOFILE= LimitAS= LimitNPROC=
                          LimitMEMLOCK= LimitLOCKS= LimitSIGPENDING= LimitMSGQUEUE=
                          LimitNICE= LimitRTPRIO= LimitRTTIME= PrivateTmp= PrivateDevices=
                          PrivateNetwork= NoNewPrivileges= WorkingDirectory= RootDirectory=
                          TTYPath= SyslogIdentifier= SyslogLevelPrefix= SyslogLevel=
-                         SyslogFacility= TimerSlackNSec= OOMScoreAdjust= ReadWriteDirectories=
-                         ReadOnlyDirectories= InaccessibleDirectories= EnvironmentFile=
-                         ProtectSystem= ProtectHome= RuntimeDirectory='
+                         SyslogFacility= TimerSlackNSec= OOMScoreAdjust= ReadWritePaths=
+                         ReadOnlyPaths= InaccessiblePaths= EnvironmentFile=
+                         ProtectSystem= ProtectHome= RuntimeDirectory= PassEnvironment='
 
             COMPREPLY=( $(compgen -W '$comps' -- "$cur") )
             return 0
@@ -108,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") )