mirror of
https://github.com/Gator96100/ProxSpace.git
synced 2025-07-29 19:18:36 -07:00
198 lines
5.6 KiB
Bash
198 lines
5.6 KiB
Bash
# bash completion for ipmitool -*- shell-script -*-
|
|
|
|
_ipmitool_singleline_help()
|
|
{
|
|
COMPREPLY=( $(compgen -W "$($1 $2 2>&1 | \
|
|
command sed -ne 's/[,\r]//g' -e 's/^.*[Cc]ommands://p')" -- "$cur") )
|
|
}
|
|
|
|
_ipmitool()
|
|
{
|
|
local cur prev words cword
|
|
_init_completion || return
|
|
|
|
case $prev in
|
|
-*[hVpUekyPmbtBTl])
|
|
return
|
|
;;
|
|
-*d)
|
|
COMPREPLY=( $(compgen -W "$(\
|
|
command ls -d /dev/ipmi* /dev/ipmi/* /dev/ipmidev/* \
|
|
2>/dev/null | command sed -ne 's/^[^0-9]*\([0-9]\{1,\}\)/\1/p')" \
|
|
-- "$cur") )
|
|
return
|
|
;;
|
|
-*I)
|
|
COMPREPLY=( $(compgen -W "$($1 -h 2>&1 | \
|
|
command sed -e '/^Interfaces:/,/^[[:space:]]*$/!d' \
|
|
-ne 's/^[[:space:]]\{1,\}\([^[:space:]]\{1,\}\).*/\1/p')" \
|
|
-- "$cur") )
|
|
return
|
|
;;
|
|
-*H)
|
|
_known_hosts_real -- "$cur"
|
|
return
|
|
;;
|
|
-*[fSO])
|
|
_filedir
|
|
return
|
|
;;
|
|
-*C)
|
|
COMPREPLY=( $(compgen -W '{0..14}' -- "$cur") )
|
|
return
|
|
;;
|
|
-*L)
|
|
COMPREPLY=( $(compgen -W 'CALLBACK USER OPERATOR ADMINISTRATOR' \
|
|
-- "$cur") )
|
|
return
|
|
;;
|
|
-*A)
|
|
COMPREPLY=( $(compgen -W 'NONE PASSWORD MD2 MD5 OEM' -- "$cur") )
|
|
return
|
|
;;
|
|
-*o)
|
|
COMPREPLY=( $(compgen -W "$($1 -o list 2>&1 | \
|
|
awk '/^[ \t]+/ { print $1 }') list" -- "$cur") )
|
|
return
|
|
;;
|
|
esac
|
|
|
|
if [[ "$cur" == -* ]]; then
|
|
COMPREPLY=( $(compgen -W '$(_parse_help "$1" -h)' -- "$cur") )
|
|
return
|
|
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 < ${#words[@]}-1; i++ )); do
|
|
[[ -n $cmd ]] && subcmd=${words[i]} && break
|
|
for c in "${cmds[@]}"; do
|
|
[[ ${words[i]} == $c ]] && cmd=$c && break
|
|
done
|
|
done
|
|
|
|
if [[ -z $cmd ]]; then
|
|
COMPREPLY=( $(compgen -W '${cmds[@]}' -- "$cur") )
|
|
return
|
|
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
|
|
|
|
# ex: filetype=sh
|