summaryrefslogtreecommitdiffstats
path: root/contrib/bash-completion
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/bash-completion')
-rw-r--r--contrib/bash-completion58
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