Add quite a bit of more stuff to ipmitool completion.
This commit is contained in:
parent
7a85f76d01
commit
622abf3a6e
2
CHANGES
2
CHANGES
@ -13,7 +13,7 @@ bash-completion (2.x)
|
||||
* Add *.gif (Alioth: #312512), *.3gpp, *.3gpp2, and *.awb to mplayer
|
||||
filename completions.
|
||||
* Add "short" tarball extensions to unxz, unlzma etc completions.
|
||||
* Improve /etc/init.d/*, jar, povray, and sqlite3 completions.
|
||||
* Improve /etc/init.d/*, ipmitool, jar, povray, and sqlite3 completions.
|
||||
* Fix p4 and povray completions (Alioth: #312625).
|
||||
* Add *.xsd, *.xsl, *.rng, and *.wsdl to xmllint filename completions.
|
||||
* Recognize rpm query mode based on the --file, --group, --package, and
|
||||
|
@ -1,6 +1,13 @@
|
||||
# bash completion for ipmitool
|
||||
|
||||
have ipmitool &&
|
||||
have ipmitool && {
|
||||
|
||||
_ipmitool_singleline_help()
|
||||
{
|
||||
COMPREPLY=( $( compgen -W "$( $1 $2 2>&1 | \
|
||||
sed -ne 's/[,\r]//g' -e 's/^.*[Cc]ommands://p' )" -- "$cur" ) )
|
||||
}
|
||||
|
||||
_ipmitool()
|
||||
{
|
||||
local cur prev
|
||||
@ -9,25 +16,194 @@ _ipmitool()
|
||||
_get_comp_words_by_ref cur prev
|
||||
|
||||
case $prev in
|
||||
-h|-V|-p|-U|-e|-k|-y|-P|-m|-b|-t|-B|-T|-l)
|
||||
return 0
|
||||
;;
|
||||
-d)
|
||||
COMPREPLY=( $( compgen -W "$( \
|
||||
command ls -d /dev/ipmi* /dev/ipmi/* /dev/ipmidev/* \
|
||||
2>/dev/null | sed -ne 's/^[^0-9]*\([0-9]\{1,\}\)/\1/p' )" \
|
||||
-- "$cur" ) )
|
||||
return 0
|
||||
;;
|
||||
-I)
|
||||
COMPREPLY=( $( compgen -W 'open imb lan lanplus free' -- "$cur" ) )
|
||||
COMPREPLY=( $( compgen -W "$( $1 -h 2>&1 | \
|
||||
sed -e '/^Interfaces:/,/^[[:space:]]*$/!d' \
|
||||
-ne 's/^[[:space:]]\{1,\}\([^[:space:]]\{1,\}\).*/\1/p' )" \
|
||||
-- "$cur" ) )
|
||||
return 0
|
||||
;;
|
||||
-H)
|
||||
_known_hosts_real "$cur"
|
||||
return 0
|
||||
;;
|
||||
-f|-S|-O)
|
||||
_filedir
|
||||
return 0
|
||||
;;
|
||||
-C)
|
||||
COMPREPLY=( $( compgen -W '0 1 2 3 4 5 6 7 8 9 10 11 12 13 14' \
|
||||
-- "$cur" ) )
|
||||
return 0
|
||||
;;
|
||||
-L)
|
||||
COMPREPLY=( $( compgen -W 'CALLBACK USER OPERATOR ADMINISTRATOR' \
|
||||
-- "$cur" ) )
|
||||
return 0
|
||||
;;
|
||||
-A)
|
||||
COMPREPLY=( $( compgen -W 'NONE PASSWORD MD2 MD5 OEM' -- "$cur" ) )
|
||||
return 0
|
||||
;;
|
||||
-o)
|
||||
COMPREPLY=( $( compgen -W "$( $1 -o list 2>&1 | \
|
||||
awk '/^[ \t]+/ { print $1 }' ) list" -- "$cur" ) )
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
if [[ "$cur" == -* ]]; then
|
||||
COMPREPLY=( $( compgen -W '-h -V -v -c -d -I -H -p -U -f -S -a \
|
||||
-e -C -k -y -K -A -P -E -K -m -b -r -B -T -l -o -O' -- "$cur" ) )
|
||||
else
|
||||
COMPREPLY=( $( compgen -W 'raw i2c spd lan chassis power event \
|
||||
mc sdr sensor fru gendev sel pef sol tsol isol user \
|
||||
channel session sunoem kontronoem picmg fwum firewall \
|
||||
exec set hpm ekanalyzer' -- "$cur" ) )
|
||||
-e -C -k -y -L -A -P -E -K -m -b -t -B -T -l -o -O' -- "$cur" ) )
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Find out command and subcommand
|
||||
|
||||
local cmds=( raw i2c spd lan chassis power event mc sdr sensor fru gendev
|
||||
sel pef sol tsol isol user channel session sunoem kontronoem picmg fwum
|
||||
firewall shell exec set hpm ekanalyzer)
|
||||
local i c cmd subcmd
|
||||
for (( i=1; i < ${#COMP_WORDS[@]}-1; i++ )); do
|
||||
[[ -n $cmd ]] && subcmd=${COMP_WORDS[i]} && break
|
||||
for c in ${cmds[@]}; do
|
||||
[ ${COMP_WORDS[i]} = $c ] && cmd=$c && break
|
||||
done
|
||||
done
|
||||
|
||||
if [ -z "$cmd" ]; then
|
||||
COMPREPLY=( $( compgen -W '${cmds[@]}' -- "$cur" ) )
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Command/subcommand completions
|
||||
|
||||
case $cmd in
|
||||
|
||||
shell)
|
||||
;;
|
||||
|
||||
exec)
|
||||
_filedir
|
||||
;;
|
||||
|
||||
chassis|power|kontronoem|fwum)
|
||||
_ipmitool_singleline_help $1 $cmd
|
||||
;;
|
||||
|
||||
lan)
|
||||
case $subcmd in
|
||||
print|set)
|
||||
;;
|
||||
alert)
|
||||
[ "$prev" = alert ] && \
|
||||
COMPREPLY=( $( compgen -W 'print set' -- "$cur" ) )
|
||||
;;
|
||||
stats)
|
||||
[ "$prev" = stats ] && \
|
||||
COMPREPLY=( $( compgen -W 'print set' -- "$cur" ) )
|
||||
;;
|
||||
*)
|
||||
COMPREPLY=( $( compgen -W 'print set alert stats' \
|
||||
-- "$cur" ) )
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
sdr)
|
||||
case $subcmd in
|
||||
get|info|type|list|entity)
|
||||
;;
|
||||
elist)
|
||||
COMPREPLY=( $( compgen -W 'all full compact event mclog fru
|
||||
generic' -- "$cur" ) )
|
||||
;;
|
||||
dump)
|
||||
_filedir
|
||||
;;
|
||||
fill)
|
||||
case $prev in
|
||||
fill)
|
||||
COMPREPLY=( $( compgen -W 'sensors file' \
|
||||
-- "$cur" ) )
|
||||
;;
|
||||
file)
|
||||
_filedir
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*)
|
||||
COMPREPLY=( $( compgen -W 'get info type list elist entity
|
||||
dump fill' -- "$cur" ) )
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
sensor)
|
||||
case $subcmd in
|
||||
list|get|thresh)
|
||||
;;
|
||||
*)
|
||||
COMPREPLY=( $( compgen -W 'list get thresh' -- "$cur" ) )
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
sel)
|
||||
case $subcmd in
|
||||
info|clear|list|elist|delete)
|
||||
;;
|
||||
add|save|writeraw|readraw)
|
||||
_filedir
|
||||
;;
|
||||
time)
|
||||
[ "$prev" = time ] && \
|
||||
COMPREPLY=( $( compgen -W 'get set' -- "$cur" ) )
|
||||
;;
|
||||
*)
|
||||
COMPREPLY=( $( compgen -W 'info clear list elist delete add
|
||||
get save writeraw readraw time' -- "$cur" ) )
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
user)
|
||||
case $subcmd in
|
||||
summary|list|disable|enable|priv|test)
|
||||
;;
|
||||
set)
|
||||
[ "$prev" = set ] && \
|
||||
COMPREPLY=( $( compgen -W 'name password' -- "$cur" ) )
|
||||
;;
|
||||
*)
|
||||
COMPREPLY=( $( compgen -W 'summary list set disable enable
|
||||
priv test' -- "$cur" ) )
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
set)
|
||||
[ "$prev" = set ] && \
|
||||
COMPREPLY=( $( compgen -W 'hostname username password privlvl
|
||||
authtype localaddr targetaddr port csv verbose' \
|
||||
-- "$cur" ) )
|
||||
;;
|
||||
|
||||
esac
|
||||
}
|
||||
|
||||
} &&
|
||||
complete -F _ipmitool ipmitool
|
||||
complete -F _ipmitool -o filenames ipmitool
|
||||
|
||||
# Local variables:
|
||||
# mode: shell-script
|
||||
|
Loading…
x
Reference in New Issue
Block a user