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
|
* Add *.gif (Alioth: #312512), *.3gpp, *.3gpp2, and *.awb to mplayer
|
||||||
filename completions.
|
filename completions.
|
||||||
* Add "short" tarball extensions to unxz, unlzma etc 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).
|
* Fix p4 and povray completions (Alioth: #312625).
|
||||||
* Add *.xsd, *.xsl, *.rng, and *.wsdl to xmllint filename completions.
|
* Add *.xsd, *.xsl, *.rng, and *.wsdl to xmllint filename completions.
|
||||||
* Recognize rpm query mode based on the --file, --group, --package, and
|
* Recognize rpm query mode based on the --file, --group, --package, and
|
||||||
|
@ -1,6 +1,13 @@
|
|||||||
# bash completion for ipmitool
|
# 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()
|
_ipmitool()
|
||||||
{
|
{
|
||||||
local cur prev
|
local cur prev
|
||||||
@ -9,25 +16,194 @@ _ipmitool()
|
|||||||
_get_comp_words_by_ref cur prev
|
_get_comp_words_by_ref cur prev
|
||||||
|
|
||||||
case $prev in
|
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)
|
-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
|
return 0
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|
||||||
if [[ "$cur" == -* ]]; then
|
if [[ "$cur" == -* ]]; then
|
||||||
COMPREPLY=( $( compgen -W '-h -V -v -c -d -I -H -p -U -f -S -a \
|
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" ) )
|
-e -C -k -y -L -A -P -E -K -m -b -t -B -T -l -o -O' -- "$cur" ) )
|
||||||
else
|
return 0
|
||||||
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" ) )
|
|
||||||
fi
|
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:
|
# Local variables:
|
||||||
# mode: shell-script
|
# mode: shell-script
|
||||||
|
Loading…
x
Reference in New Issue
Block a user