summaryrefslogtreecommitdiff
path: root/completions/ifup
diff options
context:
space:
mode:
Diffstat (limited to 'completions/ifup')
-rw-r--r--completions/ifup27
1 files changed, 24 insertions, 3 deletions
diff --git a/completions/ifup b/completions/ifup
index 42cb8f80..db8de8e0 100644
--- a/completions/ifup
+++ b/completions/ifup
@@ -7,12 +7,33 @@ _ifupdown()
local cur prev words cword
_init_completion || return
- if [[ $cword -eq 1 ]]; then
+ case $prev in
+ --help|--version|--allow|--exclude|--option|-!(-*)[hVXo])
+ return
+ ;;
+ --interfaces|-!(-*)i)
+ _filedir
+ return
+ ;;
+ --state-dir)
+ _filedir -d
+ return
+ ;;
+ esac
+
+ if [[ $cur == -* ]]; then
+ COMPREPLY=( $(compgen -W '$(_parse_help "$1")' -- "$cur") )
+ return
+ fi
+
+ local args
+ _count_args "" "@(--allow|-i|--interfaces|--state-dir|-X|--exclude|-o)"
+
+ if [[ $args -eq 1 ]]; then
_configured_interfaces
COMPREPLY=( $(compgen -W '${COMPREPLY[@]}' -- "$cur") )
fi
-
} &&
-complete -F _ifupdown ifup ifdown ifstatus
+complete -F _ifupdown ifup ifdown ifquery ifstatus
# ex: filetype=sh