mirror of
https://github.com/Keyitdev/asus-fan-control-ec.git
synced 2026-09-24 02:32:08 +00:00
65 lines
1.9 KiB
Bash
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
|