diff options
Diffstat (limited to 'contrib/bash-completion')
-rw-r--r-- | contrib/bash-completion | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/contrib/bash-completion b/contrib/bash-completion new file mode 100644 index 0000000..44dd181 --- /dev/null +++ b/contrib/bash-completion @@ -0,0 +1,58 @@ +# netcfg completion by Maciej 'macieks' Sitarz <macieks@freesco.pl> + +_connected_prfls () +{ + COMPREPLY=( $( compgen -W "$( ls /var/run/network/profiles/ )" -- $cur ) ) +} + +_connected_intfs () +{ + COMPREPLY=( $( compgen -W "$( ls /var/run/network/interfaces/)" -- $cur ) ) +} + +_netcfg () +{ + local cur prev opts lopts cmds prfls + + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" + + opts="-c -d -a -i -h -v" + lopts="--help --version" + cmds="check-iface down all-down iface-down all-resume all-suspend" + prfls="`find /etc/network.d -maxdepth 1 -not -type d -printf '%f\n'`" + + case "${cur}" in + --*) + COMPREPLY=( $( compgen -W "${lopts}" -- $cur ) ) + return 0 + ;; + -*) + COMPREPLY=( $( compgen -W "${opts} ${lopts}" -- $cur ) ) + return 0 + ;; + *) + if [ $COMP_CWORD -eq 1 ]; then + COMPREPLY=( $( compgen -W "${opts} ${lopts} ${cmds} ${prfls}" -- $cur ) ) + fi + ;; + esac + + case "${prev}" in + -c|check-iface|-i|iface-down) + _connected_intfs + return 0 + ;; + -d|down) + _connected_prfls + return 0 + ;; + *) + ;; + esac + + return 0 +} +complete -F _netcfg netcfg +complete -F _netcfg netcfg2 |