[systemd-devel] Fw: [PATCH] systemd-nspawn bash autocompletion
Carlos Morata Castillo
cmc809 at inlumine.ual.es
Thu Jan 8 12:51:49 PST 2015
Sent attached.
El Thu, 8 Jan 2015 21:40:07 +0100
Carlos Morata Castillo escribió:
>Hi,
>
>*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. :)
>
>
>diff --git a/shell-completion/bash/systemd-nspawn
>b/shell-completion/bash/systemd-nspawn index f911d1b..8519b7a 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: nspawn-autocompletion.patch
Type: text/x-patch
Size: 4416 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/systemd-devel/attachments/20150108/5e891c57/attachment.bin>
More information about the systemd-devel
mailing list