TAB Completion For V9 LTM
Problem this snippet solves:
The author got tired of not being able to TAB complete some b commands in v9, created a bash shell to help speed up the process
The following is example of tab completion:
[root@bigip1:Active] ~ # b v version virtual vlan vlangroup [root@bigip1:Active] ~ # b virtual address list show vs_http vs_text [root@bigip1:Active] ~ # b virtual vs_ vs_http vs_text [root@bigip1:Active] ~ # b virtual vs_http _
Create the file called redcomp.sh or whatever you would like to call it, in /etc/profile.d/ and execute the following:
chmod +755 redcomp.sh
this should then run the script when you log in.
Feel free to extend it and improve this code share
Note: This has been tested on v9.4.x branch
Code :
#!/bin/bash
#
# BASH completion for bigpipe on BIGIP 9.4.x
#
# Licensed under the GPL v2
# See http://www.gnu.org/licenses/gpl-2.0.html for full License Text
#
# Author: James Deucker, Red Education Pty Ltd
#
# Version 0.3
#
_virtual()
{
case $COMP_CWORD in
2)
local list=$(for x in `b virtual show | egrep "^\+-> VIRTUAL" | cut -d " " -f 3` list show address help; do echo ${x} ; done )
COMPREPLY=( $(compgen -W "${list}" -- ${cur}) )
return 0
;;
3)
local list=$(for x in `b help | egrep "^virtual \([^\)]*\) [a-z]" | cut -d " " -f 6 | sort | uniq`; do echo ${x} ; done )
COMPREPLY=( $(compgen -W "${list}" -- ${cur}) )
return 0
;;
esac
}
_pool()
{
case $COMP_CWORD in
2)
local list=$(for x in `b pool show | egrep "^POOL" | cut -d " " -f 2` list show; do echo ${x} ; done )
COMPREPLY=( $(compgen -W "${list}" -- ${cur}) )
return 0
;;
3)
local list=$(for x in `b help | egrep "^pool \([^\)]*\) [a-z]" | cut -d " " -f 6 | sort | uniq`; do echo ${x} ; done )
COMPREPLY=( $(compgen -W "${list}" -- ${cur}) )
return 0
;;
esac
}
_bp()
{
local cur prev opts base
COMPREPLY=()
base="${COMP_WORDS[1]}"
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
#
# The basic options we'll complete.
#
opts=`b help | egrep "^[a-z]" | cut -d " " -f 1 | sort | uniq | xargs`
#
# Complete the arguments to some of the basic commands.
#
case "${base}" in
virtual)
_virtual
return 0
;;
pool)
_pool
return 0
;;
*)
COMPREPLY=( $(compgen -W "help" -- ${cur}) )
;;
esac
COMPREPLY=($(compgen -W "${opts}" -- ${cur}))
return 0
}
complete -F _bp b bp bigpipe
# Note: This has been tested on v9.3.x branch
#!/bin/bash
#
# BASH completion for bigpipe on BIGIP 9.3.x
#
# Licensed under the GPL v2
# See http://www.gnu.org/licenses/gpl-2.0.html for full License Text
#
# Author: James Deucker, Red Education Pty Ltd
#
# Version 0.3b
#
_virtual()
{
case $COMP_CWORD in
2)
local list=$(for x in `b virtual show | egrep "^\+-> SERVER" | cut -d " " -f 3` list show address help; do echo ${x} ; done )
COMPREPLY=( $(compgen -W "${list}" -- ${cur}) )
return 0
;;
3)
local list=$(for x in `b help | egrep "^virtual \([^\)]*\) [a-z]" | cut -d " " -f 6 | sort | uniq`; do echo ${x} ; done )
COMPREPLY=( $(compgen -W "${list}" -- ${cur}) )
return 0
;;
esac
}
_pool()
{
case $COMP_CWORD in
2)
local list=$(for x in `b pool show | egrep "^POOL" | cut -d " " -f 2` list show; do echo ${x} ; done )
COMPREPLY=( $(compgen -W "${list}" -- ${cur}) )
return 0
;;
3)
local list=$(for x in `b help | egrep "^pool \([^\)]*\) [a-z]" | cut -d " " -f 6 | sort | uniq`; do echo ${x} ; done )
COMPREPLY=( $(compgen -W "${list}" -- ${cur}) )
return 0
;;
esac
}
_bp()
{
local cur prev opts base
COMPREPLY=()
base="${COMP_WORDS[1]}"
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
#
# The basic options we'll complete.
#
opts=`b help | egrep "^[a-z]" | cut -d " " -f 1 | sort | uniq | xargs`
#
# Complete the arguments to some of the basic commands.
#
case "${base}" in
virtual)
_virtual
return 0
;;
pool)
_pool
return 0
;;
*)
COMPREPLY=( $(compgen -W "help" -- ${cur}) )
;;
esac
COMPREPLY=($(compgen -W "${opts}" -- ${cur}))
return 0
}
complete -F _bp b bp bigpipePublished Mar 12, 2015
Version 1.0CodeCentral_194
Cirrostratus
Joined May 05, 2019
CodeCentral_194
Cirrostratus
Joined May 05, 2019
No CommentsBe the first to comment