mirror of
https://github.com/systemd/systemd.git
synced 2025-01-11 09:18:07 +03:00
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. :)
This commit is contained in:
parent
7376e83528
commit
8c5463585d
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user