diff options
author | Carlos Morata Castillo <cmc809@inlumine.ual.es> | 2015-01-08 21:51:49 +0100 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2015-01-08 16:33:59 -0500 |
commit | 8c5463585df633ca302824559888b62de5b4ba20 (patch) | |
tree | eb15532f83ef1ae5b92b4c7ca61c44a9ed5efe2d /shell-completion/bash/systemd-nspawn | |
parent | 7376e835289a3f97174a641a1ca4b7dbda997030 (diff) |
bash-completion: systemd-nspawn update
*Autocompletion for dirs, doesn't leave until you press space.
*Added tmpfs, volatile and network-macvlan options.
I tried with the SELinux options with seinfo(setools-console), but too
messy to get it right. Even Daniel Walsh haven't done it yet. :)
Diffstat (limited to 'shell-completion/bash/systemd-nspawn')
-rw-r--r-- | shell-completion/bash/systemd-nspawn | 40 |
1 files changed, 34 insertions, 6 deletions
diff --git a/shell-completion/bash/systemd-nspawn b/shell-completion/bash/systemd-nspawn index f911d1b246..83e34ef02e 100644 --- a/shell-completion/bash/systemd-nspawn +++ b/shell-completion/bash/systemd-nspawn @@ -34,6 +34,20 @@ __get_slices() { systemctl list-units -t slice --no-legend --no-pager | { while read a b; do echo " $a"; done; }; } +__get_machines() { + local a b + machinectl list --no-legend --no-pager | { while read a b; do echo " $a"; done; }; +} + +__get_env() { + local a + env | { while read a; do echo " ${a%%=*}"; done; }; +} + +__get_interfaces(){ + cut -f 1 -d ' ' /proc/net/dev | tail -n +3 | tr -s '\n' | tr -d ':' | xargs +} + _systemd_nspawn() { local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} local i verb comps @@ -42,7 +56,8 @@ _systemd_nspawn() { [STANDALONE]='-h --help --version --private-network -b --boot --read-only -q --quiet --share-system --keep-unit --network-veth -j' [ARG]='-D --directory -u --user --uuid --capability --drop-capability --link-journal --bind --bind-ro -M --machine -S --slice --setenv -Z --selinux-context -L --selinux-apifs-context --register --network-interface --network-bridge - --personality -i --image' + --personality -i --image --tmpfs --volatile + --network-macvlan' ) _init_completion || return @@ -50,7 +65,8 @@ _systemd_nspawn() { if __contains_word "$prev" ${OPTS[ARG]}; then case $prev in --directory|-D) - comps=$(compgen -A directory -- "$cur" ) + compopt -o nospace + comps=$(compgen -S/ -A directory -- "$cur" ) ;; --user|-u) comps=$( __get_users ) @@ -72,16 +88,21 @@ _systemd_nspawn() { comps='no auto guest host' ;; --bind|--bind-ro) - comps='' + compopt -o nospace + comps=$(compgen -S/ -A directory -- "$cur" ) + ;; + --tmpfs) + compopt -o nospace + comps=$(compgen -S/ -A directory -- "$cur" ) ;; --machine|-M) - comps='' + comps=$( __get_machines ) ;; --slice|-S) comps=$( __get_slices ) ;; --setenv) - comps='' + comps=$( __get_env ) ;; --selinux-context|-Z) comps='' @@ -93,15 +114,22 @@ _systemd_nspawn() { comps='yes no' ;; --network-interface) - comps='' + comps=$(__get_interfaces) ;; --network-bridge) comps='' ;; + --network-macvlan) + comps='' + ;; --personality) comps='x86 x86-64' ;; + --volatile) + comps='yes state no' + ;; --image|-i) + compopt -o nospace comps=$( compgen -A file -- "$cur" ) ;; esac |