summaryrefslogtreecommitdiff
path: root/completions/iptables
diff options
context:
space:
mode:
Diffstat (limited to 'completions/iptables')
-rw-r--r--completions/iptables31
1 files changed, 13 insertions, 18 deletions
diff --git a/completions/iptables b/completions/iptables
index 5ef81037..69072613 100644
--- a/completions/iptables
+++ b/completions/iptables
@@ -7,44 +7,39 @@ _iptables()
local table chain='s/^Chain \([^ ]\{1,\}\).*$/\1/p'
- if [[ ${words[@]} == *-t\ *filter* ]]; then
- table="-t filter"
- elif [[ ${words[@]} == *-t\ *nat* ]]; then
- table="-t nat"
- elif [[ ${words[@]} == *-t\ *mangle* ]]; then
- table="-t mangle"
- fi
+ [[ "${words[*]}" =~ [[:space:]]-(t|-table=?)[[:space:]]*([^[:space:]]+) ]] \
+ && table="-t ${BASH_REMATCH[2]}"
case $prev in
-*[AIDRPFXLZ])
- COMPREPLY=( $( compgen -W '`"$1" $table -nL 2>/dev/null | \
- command sed -ne "s/^Chain \([^ ]\{1,\}\).*$/\1/p"`' -- "$cur" ) )
+ COMPREPLY=( $(compgen -W '`"$1" $table -nL 2>/dev/null | \
+ command sed -ne "s/^Chain \([^ ]\{1,\}\).*$/\1/p"`' -- "$cur") )
;;
-*t)
- COMPREPLY=( $( compgen -W 'nat filter mangle' -- "$cur" ) )
+ COMPREPLY=( $(compgen -W 'nat filter mangle' -- "$cur") )
;;
-j)
if [[ "$table" == "-t filter" || -z "$table" ]]; then
- COMPREPLY=( $( compgen -W 'ACCEPT DROP LOG ULOG REJECT
+ COMPREPLY=( $(compgen -W 'ACCEPT DROP LOG ULOG REJECT
`"$1" $table -nL 2>/dev/null | command sed -ne "$chain" \
-e "s/INPUT|OUTPUT|FORWARD|PREROUTING|POSTROUTING//"`' -- \
- "$cur" ) )
+ "$cur") )
elif [[ $table == "-t nat" ]]; then
- COMPREPLY=( $( compgen -W 'ACCEPT DROP LOG ULOG REJECT MIRROR SNAT
+ COMPREPLY=( $(compgen -W 'ACCEPT DROP LOG ULOG REJECT MIRROR SNAT
DNAT MASQUERADE `"$1" $table -nL 2>/dev/null | \
command sed -ne "$chain" -e "s/OUTPUT|PREROUTING|POSTROUTING//"`' \
- -- "$cur" ) )
+ -- "$cur") )
elif [[ $table == "-t mangle" ]]; then
- COMPREPLY=( $( compgen -W 'ACCEPT DROP LOG ULOG REJECT MARK TOS
+ COMPREPLY=( $(compgen -W 'ACCEPT DROP LOG ULOG REJECT MARK TOS
`"$1" $table -nL 2>/dev/null | command sed -ne "$chain" \
-e "s/INPUT|OUTPUT|FORWARD|PREROUTING|POSTROUTING//"`' -- \
- "$cur" ) )
+ "$cur") )
fi
;;
*)
if [[ "$cur" == -* ]]; then
- COMPREPLY=( $( compgen -W '$( "$1" --help 2>&1 |
- command sed -e "s/^\[\!\]//" | _parse_help - )' -- "$cur" ) )
+ COMPREPLY=( $(compgen -W '$("$1" --help 2>&1 |
+ command sed -e "s/^\[\!\]//" | _parse_help -)' -- "$cur") )
[[ $COMPREPLY == *= ]] && compopt -o nospace
fi
;;