The following commit has been merged in the master branch:
commit 4064cd2361315cbe1f63ca379cac7ca922cd7937
Author: Guillaume Rousse <[email protected]>
Date:   Wed May 27 18:56:41 2009 +0200

    split iptables completion

diff --git a/Makefile.am b/Makefile.am
index bbaf987..719f219 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -35,6 +35,7 @@ bashcomp_DATA = contrib/ant \
                contrib/harbour \
                contrib/heimdal \
                contrib/imagemagick \
+               contrib/iptables \
                contrib/isql \
                contrib/java \
                contrib/larch \
diff --git a/bash_completion b/bash_completion
index c7919b5..4171c19 100644
--- a/bash_completion
+++ b/bash_completion
@@ -2610,69 +2610,6 @@ _jar()
 } &&
 complete -F _jar $filenames jar
 
-# Linux iptables(8) completion
-#
-have iptables &&
-_iptables()
-{
-       local cur prev table chain
-
-       COMPREPLY=()
-       cur=`_get_cword`
-       prev=${COMP_WORDS[COMP_CWORD-1]}
-       chain='s/^Chain \([^ ]\+\).*$/\1/p'
-
-       if [[ $COMP_LINE == *-t\ *filter* ]]; then
-               table="-t filter"
-       elif [[ $COMP_LINE == *-t\ *nat* ]]; then
-               table="-t nat"
-       elif [[ $COMP_LINE == *-t\ *mangle* ]]; then
-               table="-t mangle"
-       fi
-
-       _split_longopt
-
-       case "$prev" in
-       -*[AIDRPFXLZ])
-               COMPREPLY=( $( compgen -W '`iptables $table -nL | \
-                           sed -ne "s/^Chain \([^ ]\+\).*$/\1/p"`' -- $cur ) )
-               ;;
-       -*t)
-               COMPREPLY=( $( compgen -W 'nat filter mangle' -- $cur ) )
-               ;;
-       -j)
-               if [ "$table" = "-t filter" -o "$table" = "" ]; then
-                   COMPREPLY=( $( compgen -W 'ACCEPT DROP LOG ULOG REJECT \
-                   `iptables $table -nL | sed -ne "$chain" \
-                   -e "s/INPUT|OUTPUT|FORWARD|PREROUTING|POSTROUTING//"`' -- \
-                   $cur ) )
-               elif [ "$table" = "-t nat" ]; then
-                   COMPREPLY=( $( compgen -W 'ACCEPT DROP LOG ULOG REJECT \
-                   MIRROR SNAT DNAT MASQUERADE `iptables $table -nL | \
-                   sed -ne "$chain" -e "s/OUTPUT|PREROUTING|POSTROUTING//"`' \
-                   -- $cur ) )
-               elif [ "$table" = "-t mangle" ]; then
-                   COMPREPLY=( $( compgen -W 'ACCEPT DROP LOG ULOG REJECT \
-                   MARK TOS `iptables $table -nL | sed -ne "$chain" \
-                   -e "s/INPUT|OUTPUT|FORWARD|PREROUTING|POSTROUTING//"`' -- \
-                   $cur ) )
-               fi
-               ;;
-       *)
-               if [[ "$cur" == -* ]]; then
-                   COMPREPLY=( $( compgen -W '-i -o -s -d -p -f -m --append \
-                   --delete --insert --replace --list --flush --zero --new \
-                   --delete-chain --policy --rename-chain --proto --source \
-                   --destination --in-interface --jump --match --numeric \
-                   --out-interface --table --verbose --line-numbers --exact \
-                   --fragment --modprobe --set-counters --version' -- "$cur") )
-               fi
-               ;;
-       esac
-
-} &&
-complete -F _iptables iptables
-
 # tcpdump(8) completion
 #
 have tcpdump &&
diff --git a/contrib/iptables b/contrib/iptables
new file mode 100644
index 0000000..77714c6
--- /dev/null
+++ b/contrib/iptables
@@ -0,0 +1,65 @@
+# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*-
+# ex: ts=8 sw=8 noet filetype=sh
+#
+# bash completion for iptables
+
+have iptables &&
+_iptables()
+{
+       local cur prev table chain
+
+       COMPREPLY=()
+       cur=`_get_cword`
+       prev=${COMP_WORDS[COMP_CWORD-1]}
+       chain='s/^Chain \([^ ]\+\).*$/\1/p'
+
+       if [[ $COMP_LINE == *-t\ *filter* ]]; then
+               table="-t filter"
+       elif [[ $COMP_LINE == *-t\ *nat* ]]; then
+               table="-t nat"
+       elif [[ $COMP_LINE == *-t\ *mangle* ]]; then
+               table="-t mangle"
+       fi
+
+       _split_longopt
+
+       case "$prev" in
+       -*[AIDRPFXLZ])
+               COMPREPLY=( $( compgen -W '`iptables $table -nL | \
+                           sed -ne "s/^Chain \([^ ]\+\).*$/\1/p"`' -- $cur ) )
+               ;;
+       -*t)
+               COMPREPLY=( $( compgen -W 'nat filter mangle' -- $cur ) )
+               ;;
+       -j)
+               if [ "$table" = "-t filter" -o "$table" = "" ]; then
+                   COMPREPLY=( $( compgen -W 'ACCEPT DROP LOG ULOG REJECT \
+                   `iptables $table -nL | sed -ne "$chain" \
+                   -e "s/INPUT|OUTPUT|FORWARD|PREROUTING|POSTROUTING//"`' -- \
+                   $cur ) )
+               elif [ "$table" = "-t nat" ]; then
+                   COMPREPLY=( $( compgen -W 'ACCEPT DROP LOG ULOG REJECT \
+                   MIRROR SNAT DNAT MASQUERADE `iptables $table -nL | \
+                   sed -ne "$chain" -e "s/OUTPUT|PREROUTING|POSTROUTING//"`' \
+                   -- $cur ) )
+               elif [ "$table" = "-t mangle" ]; then
+                   COMPREPLY=( $( compgen -W 'ACCEPT DROP LOG ULOG REJECT \
+                   MARK TOS `iptables $table -nL | sed -ne "$chain" \
+                   -e "s/INPUT|OUTPUT|FORWARD|PREROUTING|POSTROUTING//"`' -- \
+                   $cur ) )
+               fi
+               ;;
+       *)
+               if [[ "$cur" == -* ]]; then
+                   COMPREPLY=( $( compgen -W '-i -o -s -d -p -f -m --append \
+                   --delete --insert --replace --list --flush --zero --new \
+                   --delete-chain --policy --rename-chain --proto --source \
+                   --destination --in-interface --jump --match --numeric \
+                   --out-interface --table --verbose --line-numbers --exact \
+                   --fragment --modprobe --set-counters --version' -- "$cur") )
+               fi
+               ;;
+       esac
+
+} &&
+complete -F _iptables iptables

-- 
bash-completion

_______________________________________________
Bash-completion-commits mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/bash-completion-commits

Reply via email to