summaryrefslogtreecommitdiff
path: root/functions/interpreter/vyatta-common
diff options
context:
space:
mode:
authorJohn Southworth <john.southworth@vyatta.com>2011-08-02 12:45:09 -0500
committerJohn Southworth <john.southworth@vyatta.com>2011-08-02 12:45:09 -0500
commit078992d5bca135f6389cc37bf867ebbefb1ff72b (patch)
treeb3c9569e216574a4b544e561a1c4debc855c3e21 /functions/interpreter/vyatta-common
parent65d10befec7daac9e1c600073fca0e912c188f23 (diff)
downloadvyatta-op-078992d5bca135f6389cc37bf867ebbefb1ff72b.tar.gz
vyatta-op-078992d5bca135f6389cc37bf867ebbefb1ff72b.zip
Reorganize the bash completion and command interpreter scripts into easier to manage chunks. vyatta-op-run no longer exists in /etc/bash_completion.d/ as it is not a completion script it should not be here
Diffstat (limited to 'functions/interpreter/vyatta-common')
-rw-r--r--functions/interpreter/vyatta-common82
1 files changed, 82 insertions, 0 deletions
diff --git a/functions/interpreter/vyatta-common b/functions/interpreter/vyatta-common
new file mode 100644
index 0000000..0a98d56
--- /dev/null
+++ b/functions/interpreter/vyatta-common
@@ -0,0 +1,82 @@
+# vyatta bash completion common functions
+
+# **** License ****
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# A copy of the GNU General Public License is available as
+# `/usr/share/common-licenses/GPL' in the Debian GNU/Linux distribution
+# or on the World Wide Web at `http://www.gnu.org/copyleft/gpl.html'.
+# You can also obtain it by writing to the Free Software Foundation,
+# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+# MA 02110-1301, USA.
+#
+# Author: Vyatta
+# Description: bash completion common functions
+#
+# **** End License ****
+
+get_prefix_filtered_list ()
+{
+ # $1: prefix
+ # $2: \@list
+ # $3: \@filtered
+ declare -a olist
+ local pfx=$1
+ pfx=${pfx#\"}
+ eval "olist=( \"\${$2[@]}\" )"
+ local idx=0
+ for elem in "${olist[@]}"; do
+ local sub=${elem#$pfx}
+ if [ "$elem" == "$sub" ] && [ -n "$pfx" ]; then
+ continue
+ fi
+ eval "$3[$idx]=\"$elem\""
+ (( idx++ ))
+ done
+}
+
+get_prefix_filtered_list2 ()
+{
+ # $1: prefix
+ # $2: \@list
+ # $3: \@filtered
+ # $4: \@list2
+ # $5: \@filtered2
+ declare -a olist
+ local pfx=$1
+ pfx=${pfx#\"}
+ eval "olist=( \"\${$2[@]}\" )"
+ eval "local orig_len=\${#$2[@]}"
+ local orig_idx=0
+ local idx=0
+ for (( orig_idx = 0; orig_idx < orig_len; orig_idx++ )); do
+ eval "local elem=\${$2[$orig_idx]}"
+ eval "local elem2=\${$4[$orig_idx]}"
+ local sub=${elem#$pfx}
+ if [ "$elem" == "$sub" ] && [ -n "$pfx" ]; then
+ continue
+ fi
+ eval "$3[$idx]=\"$elem\""
+ eval "$5[$idx]=\"$elem2\""
+ (( idx++ ))
+ done
+}
+
+is_elem_of () {
+ local elem=$1
+ local -a olist
+ eval "olist=( \"\${$2[@]}\" )"
+ for e in ${olist[*]}; do
+ if [[ "$e" == "$elem" ]]; then
+ return 0
+ fi
+ done
+ return 1
+}