Files

65 lines
1.9 KiB
Bash

_asus_fan_control_ec()
{
local cur prev cmd word i skip
local commands="set setp curve fan-speed fan-info temps-info help version"
local globals="--cmd-port --data-port --gap --verbose"
local valued="--cmd-port --data-port --gap --fan --retries --order --config --interval --hysteresis --panic-temp --sensor"
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case "$prev" in
--order)
COMPREPLY=( $(compgen -W "mode-first duty-first" -- "$cur") )
return ;;
--sensor)
COMPREPLY=( $(compgen -W "cpu board max" -- "$cur") )
return ;;
--config)
COMPREPLY=( $(compgen -f -- "$cur") )
return ;;
--fan)
COMPREPLY=( $(compgen -W "0 1" -- "$cur") )
return ;;
--cmd-port|--data-port|--gap|--retries|--interval|--hysteresis|--panic-temp)
return ;;
esac
cmd=""
skip=0
for (( i=1; i < COMP_CWORD; i++ )); do
word="${COMP_WORDS[i]}"
if [ "$skip" = 1 ]; then
skip=0
continue
fi
case " $valued " in
*" $word "*)
skip=1
continue ;;
esac
case " $commands " in
*" $word "*)
cmd="$word"
break ;;
esac
done
if [ -z "$cmd" ]; then
COMPREPLY=( $(compgen -W "$commands $globals" -- "$cur") )
return
fi
case "$cmd" in
set|setp)
COMPREPLY=( $(compgen -W "--fan --retries --no-verify --order $globals" -- "$cur") ) ;;
curve)
COMPREPLY=( $(compgen -W "--config --interval --hysteresis --panic-temp --sensor --retries --order --once --dry-run --silent $globals" -- "$cur") ) ;;
*)
COMPREPLY=( $(compgen -W "$globals" -- "$cur") ) ;;
esac
}
complete -F _asus_fan_control_ec asus-fan-control-ec