[Bash-completion-devel] [PATCH] Add completion scripts for fcoe-utils and open-lldp

Robert Love robert.w.love at intel.com
Wed Apr 20 21:19:05 UTC 2011


This patch adds completion scripts for fcoeadm, fcoemon,
lldpad and lldptool. They are very simple scripts, but
do the trick. A shortcoming of the lldptool completion
script is that it does not differentiate between options
and commands.

Signed-off-by: Robert Love <robert.w.love at intel.com>
---
 completions/fcoeadm  |   54 ++++++++++++++++++++++++++++++++++++
 completions/fcoemon  |   42 ++++++++++++++++++++++++++++
 completions/lldpad   |   50 ++++++++++++++++++++++++++++++++++
 completions/lldptool |   74 ++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 220 insertions(+), 0 deletions(-)
 create mode 100644 completions/fcoeadm
 create mode 100644 completions/fcoemon
 create mode 100644 completions/lldpad
 create mode 100644 completions/lldptool

diff --git a/completions/fcoeadm b/completions/fcoeadm
new file mode 100644
index 0000000..60f902d
--- /dev/null
+++ b/completions/fcoeadm
@@ -0,0 +1,54 @@
+# bash completion for fcoeadm
+#
+## fcoeadm --help
+#Version 1.0.17
+#Usage: fcoeadm
+# [-c|--create] <ethX>
+# [-d|--destroy] <ethX>
+# [-r|--reset] <ethX>
+# [-S|--Scan] <ethX>
+# [-i|--interface] [<ethX>]
+# [-t|--target] [<ethX>]
+# [-l|--lun] [<ethX>]
+# [-s|--stats] <ethX> [<interval>]
+# [-v|--version]
+# [-h|--help]
+
+# This file must be updated with any changes to, or additions to the options.
+
+# Could not get numeric value to work for the --stats interval
+# Considered parsing output of --help to complete options
+
+have fcoeadm && _fcoeadm_options()
+{
+    local cur prev prev_prev opts
+    COMPREPLY=()
+    cur="${COMP_WORDS[COMP_CWORD]}"
+    prev="${COMP_WORDS[COMP_CWORD-1]}"
+    opts="-c --create -d --destroy -r --reset -i --interface -t --target -l --lun -s --stats -S --Scan -h --help -v --version"
+
+    case "${prev}" in
+        -c|--create|-d|--destroy|-r|--reset|-s|--stats|-S|--Scan|-i|--interface|-t|--target|-l|--lun)
+	    _available_interfaces
+	    return 0
+	    ;;
+    esac
+
+    case "${cur}" in
+        *)
+            COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
+	    return 0
+	    ;;
+    esac
+
+    return 0
+}
+complete -F _fcoeadm_options fcoeadm
+
+# Local variables:
+# mode: shell-script
+# sh-basic-offset: 4
+# sh-indent-comment: t
+# indent-tabs-mode: nil
+# End:
+# ex: ts=4 sw=4 et filetype=sh
\ No newline at end of file
diff --git a/completions/fcoemon b/completions/fcoemon
new file mode 100644
index 0000000..e9c7d6b
--- /dev/null
+++ b/completions/fcoemon
@@ -0,0 +1,42 @@
+# bash completion for fcoemon
+#
+
+## fcoemon --help
+#Usage: fcoemon
+# [-f|--foreground]
+# [-d|--debug]
+# [-s|--syslog]
+# [-v|--version]
+# [-h|--help]
+
+# This file must be updated with any changes to, or additions to the options.
+
+# Could not get numeric value to work for the --stats interval
+# Considered parsing output of --help to complete options
+
+have fcoemon && _fcoemon_options()
+{
+    local cur prev prev_prev opts
+    COMPREPLY=()
+    cur="${COMP_WORDS[COMP_CWORD]}"
+    prev="${COMP_WORDS[COMP_CWORD-1]}"
+    opts="-f --foreground -d --debug -s --syslog -v --version -h --help"
+
+    case "${cur}" in
+        *)
+            COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
+	    return 0
+	    ;;
+    esac
+
+    return 0
+}
+complete -F _fcoemon_options fcoemon
+
+# Local variables:
+# mode: shell-script
+# sh-basic-offset: 4
+# sh-indent-comment: t
+# indent-tabs-mode: nil
+# End:
+# ex: ts=4 sw=4 et filetype=sh
\ No newline at end of file
diff --git a/completions/lldpad b/completions/lldpad
new file mode 100644
index 0000000..5e704f8
--- /dev/null
+++ b/completions/lldpad
@@ -0,0 +1,50 @@
+# bash completion for lldpad
+#
+## lldpad --help
+# usage: lldpad [-hdksv] [-f configfile]
+# options:
+#   -h  show this usage
+#   -f  use configfile instead of default
+#   -d  run daemon in the background
+#   -k  terminate current running lldpad
+#   -s  remove lldpad state records
+#   -v  show version
+#   -V  set syslog level
+
+# This file must be updated with any changes to, or additions to the options.
+
+# Could not get numeric value to work for the --stats interval
+# Considered parsing output of --help to complete options
+
+have lldpad && _lldpad_options()
+{
+    local cur prev opts
+    COMPREPLY=()
+    cur="${COMP_WORDS[COMP_CWORD]}"
+    prev="${COMP_WORDS[COMP_CWORD-1]}"
+    opts="-h -f -d -k -s -v -V"
+
+    case "${cur}" in
+        *)
+            COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
+	    ;;
+    esac
+
+    case "${prev}" in
+        -f)
+	    _filedir
+	    return 0
+	    ;;
+    esac
+
+    return 0
+}
+complete -F _lldpad_options lldpad
+
+# Local variables:
+# mode: shell-script
+# sh-basic-offset: 4
+# sh-indent-comment: t
+# indent-tabs-mode: nil
+# End:
+# ex: ts=4 sw=4 et filetype=sh
\ No newline at end of file
diff --git a/completions/lldptool b/completions/lldptool
new file mode 100644
index 0000000..3cb9a95
--- /dev/null
+++ b/completions/lldptool
@@ -0,0 +1,74 @@
+# bash completion for lldptool
+#
+## lldptool --help
+# lldptool v0.9.41
+# Copyright (c) 2007-2010, Intel Corporation
+#
+# Substantially modified from:  hostapd_cli v 0.5.7
+# Copyright (c) 2004-2007, Jouni Malinen <j at w1.fi> and contributors
+#
+# Usage:
+#   lldptool <command> [options] [arg]   general command line usage format
+#   lldptool                             go into interactive mode
+#            <command> [options] [arg]   general interactive command format
+#
+# Options:
+#   -i [ifname]                          network interface
+#   -V [tlvid]                           TLV identifier
+#                                        may be numeric or keyword (see below)
+#   -n                                   "neighbor" option for command
+#   -a                                   "add" option for command
+#   -d                                   "remove" option for command
+#   -r                                   show raw message
+#   -R                                   show only raw messages
+#
+# Commands:
+#   license                              show license information
+#   -h|help                              show command usage information
+#   -v|version                           show version
+#   -q|quit                              exit lldptool (interactive mode)
+#   -S|stats                             get LLDP statistics for ifname
+#   -t|get-tlv                           get TLVs from ifname
+#   -T|set-tlv                           set arg for tlvid to value
+#   -l|get-lldp                          get the LLDP parameters for ifname
+#   -L|set-lldp                          set the LLDP parameter for ifname
+
+# This file must be updated with any changes to, or additions to the options.
+
+# Could not get numeric value to work for the --stats interval
+# Considered parsing output of --help to complete options
+
+have lldptool && _lldptool_options()
+{
+    local cur prev opts cmds opts_and_cmds
+    COMPREPLY=()
+    cur="${COMP_WORDS[COMP_CWORD]}"
+    prev="${COMP_WORDS[COMP_CWORD-1]}"
+    cmds="license -h help -v version -q quit -s stats -t get-tlv -T set-tlv -l get-lldp -L set-lldp"
+    opts="-i -V -n -a -d -r -R"
+    opts_and_cmds="$opts $cmds"
+
+    case "${cur}" in
+        *)
+            COMPREPLY=( $(compgen -W "${opts_and_cmds}" -- ${cur}) )
+	    ;;
+    esac
+
+    case "${prev}" in
+        -i)
+	    _available_interfaces
+	    return 0
+	    ;;
+    esac
+
+    return 0
+}
+complete -F _lldptool_options lldptool
+
+# Local variables:
+# mode: shell-script
+# sh-basic-offset: 4
+# sh-indent-comment: t
+# indent-tabs-mode: nil
+# End:
+# ex: ts=4 sw=4 et filetype=sh
\ No newline at end of file




More information about the Bash-completion-devel mailing list