162306a36Sopenharmony_ci# -*- shell-script -*- 262306a36Sopenharmony_ci# bash completion script for cpupower 362306a36Sopenharmony_ci# Taken from git.git's completion script. 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci_cpupower_commands="frequency-info frequency-set idle-info idle-set set info monitor" 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci_frequency_info () 862306a36Sopenharmony_ci{ 962306a36Sopenharmony_ci local flags="-f -w -l -d -p -g -a -s -y -o -m -n --freq --hwfreq --hwlimits --driver --policy --governors --related-cpus --affected-cpus --stats --latency --proc --human --no-rounding" 1062306a36Sopenharmony_ci local prev="${COMP_WORDS[COMP_CWORD-1]}" 1162306a36Sopenharmony_ci local cur="${COMP_WORDS[COMP_CWORD]}" 1262306a36Sopenharmony_ci case "$prev" in 1362306a36Sopenharmony_ci frequency-info) COMPREPLY=($(compgen -W "$flags" -- "$cur")) ;; 1462306a36Sopenharmony_ci esac 1562306a36Sopenharmony_ci} 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci_frequency_set () 1862306a36Sopenharmony_ci{ 1962306a36Sopenharmony_ci local flags="-f -g --freq --governor -d --min -u --max -r --related" 2062306a36Sopenharmony_ci local prev="${COMP_WORDS[COMP_CWORD-1]}" 2162306a36Sopenharmony_ci local cur="${COMP_WORDS[COMP_CWORD]}" 2262306a36Sopenharmony_ci case "$prev" in 2362306a36Sopenharmony_ci -f| --freq | -d | --min | -u | --max) 2462306a36Sopenharmony_ci if [ -d /sys/devices/system/cpu/cpufreq/ ] ; then 2562306a36Sopenharmony_ci COMPREPLY=($(compgen -W '$(cat $(ls -d /sys/devices/system/cpu/cpufreq/policy* | head -1)/scaling_available_frequencies)' -- "$cur")) 2662306a36Sopenharmony_ci fi ;; 2762306a36Sopenharmony_ci -g| --governor) 2862306a36Sopenharmony_ci if [ -d /sys/devices/system/cpu/cpufreq/ ] ; then 2962306a36Sopenharmony_ci COMPREPLY=($(compgen -W '$(cat $(ls -d /sys/devices/system/cpu/cpufreq/policy* | head -1)/scaling_available_governors)' -- "$cur")) 3062306a36Sopenharmony_ci fi;; 3162306a36Sopenharmony_ci frequency-set) COMPREPLY=($(compgen -W "$flags" -- "$cur")) ;; 3262306a36Sopenharmony_ci esac 3362306a36Sopenharmony_ci} 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci_idle_info() 3662306a36Sopenharmony_ci{ 3762306a36Sopenharmony_ci local flags="-f --silent" 3862306a36Sopenharmony_ci local prev="${COMP_WORDS[COMP_CWORD-1]}" 3962306a36Sopenharmony_ci local cur="${COMP_WORDS[COMP_CWORD]}" 4062306a36Sopenharmony_ci case "$prev" in 4162306a36Sopenharmony_ci idle-info) COMPREPLY=($(compgen -W "$flags" -- "$cur")) ;; 4262306a36Sopenharmony_ci esac 4362306a36Sopenharmony_ci} 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci_idle_set() 4662306a36Sopenharmony_ci{ 4762306a36Sopenharmony_ci local flags="-d --disable -e --enable -D --disable-by-latency -E --enable-all" 4862306a36Sopenharmony_ci local prev="${COMP_WORDS[COMP_CWORD-1]}" 4962306a36Sopenharmony_ci local cur="${COMP_WORDS[COMP_CWORD]}" 5062306a36Sopenharmony_ci case "$prev" in 5162306a36Sopenharmony_ci idle-set) COMPREPLY=($(compgen -W "$flags" -- "$cur")) ;; 5262306a36Sopenharmony_ci esac 5362306a36Sopenharmony_ci} 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ci_set() 5662306a36Sopenharmony_ci{ 5762306a36Sopenharmony_ci local flags="--perf-bias, -b" 5862306a36Sopenharmony_ci local prev="${COMP_WORDS[COMP_CWORD-1]}" 5962306a36Sopenharmony_ci local cur="${COMP_WORDS[COMP_CWORD]}" 6062306a36Sopenharmony_ci case "$prev" in 6162306a36Sopenharmony_ci set) COMPREPLY=($(compgen -W "$flags" -- "$cur")) ;; 6262306a36Sopenharmony_ci esac 6362306a36Sopenharmony_ci} 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci_monitor() 6662306a36Sopenharmony_ci{ 6762306a36Sopenharmony_ci local flags="-l -m -i -c -v" 6862306a36Sopenharmony_ci local prev="${COMP_WORDS[COMP_CWORD-1]}" 6962306a36Sopenharmony_ci local cur="${COMP_WORDS[COMP_CWORD]}" 7062306a36Sopenharmony_ci case "$prev" in 7162306a36Sopenharmony_ci monitor) COMPREPLY=($(compgen -W "$flags" -- "$cur")) ;; 7262306a36Sopenharmony_ci esac 7362306a36Sopenharmony_ci} 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci_taskset() 7662306a36Sopenharmony_ci{ 7762306a36Sopenharmony_ci local prev_to_prev="${COMP_WORDS[COMP_CWORD-2]}" 7862306a36Sopenharmony_ci local prev="${COMP_WORDS[COMP_CWORD-1]}" 7962306a36Sopenharmony_ci local cur="${COMP_WORDS[COMP_CWORD]}" 8062306a36Sopenharmony_ci case "$prev_to_prev" in 8162306a36Sopenharmony_ci -c|--cpu) COMPREPLY=($(compgen -W "$_cpupower_commands" -- "$cur")) ;; 8262306a36Sopenharmony_ci esac 8362306a36Sopenharmony_ci case "$prev" in 8462306a36Sopenharmony_ci frequency-info) _frequency_info ;; 8562306a36Sopenharmony_ci frequency-set) _frequency_set ;; 8662306a36Sopenharmony_ci idle-info) _idle_info ;; 8762306a36Sopenharmony_ci idle-set) _idle_set ;; 8862306a36Sopenharmony_ci set) _set ;; 8962306a36Sopenharmony_ci monitor) _monitor ;; 9062306a36Sopenharmony_ci esac 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ci} 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_ci_cpupower () 9562306a36Sopenharmony_ci{ 9662306a36Sopenharmony_ci local i 9762306a36Sopenharmony_ci local c=1 9862306a36Sopenharmony_ci local command 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_ci while test $c -lt $COMP_CWORD; do 10162306a36Sopenharmony_ci if test $c == 1; then 10262306a36Sopenharmony_ci command="${COMP_WORDS[c]}" 10362306a36Sopenharmony_ci fi 10462306a36Sopenharmony_ci c=$((++c)) 10562306a36Sopenharmony_ci done 10662306a36Sopenharmony_ci 10762306a36Sopenharmony_ci # Complete name of subcommand if the user has not finished typing it yet. 10862306a36Sopenharmony_ci if test $c -eq $COMP_CWORD -a -z "$command"; then 10962306a36Sopenharmony_ci COMPREPLY=($(compgen -W "help -v --version -c --cpu $_cpupower_commands" -- "${COMP_WORDS[COMP_CWORD]}")) 11062306a36Sopenharmony_ci return 11162306a36Sopenharmony_ci fi 11262306a36Sopenharmony_ci 11362306a36Sopenharmony_ci # Complete arguments to subcommands. 11462306a36Sopenharmony_ci case "$command" in 11562306a36Sopenharmony_ci -v|--version) return ;; 11662306a36Sopenharmony_ci -c|--cpu) _taskset ;; 11762306a36Sopenharmony_ci help) COMPREPLY=($(compgen -W "$_cpupower_commands" -- "${COMP_WORDS[COMP_CWORD]}")) ;; 11862306a36Sopenharmony_ci frequency-info) _frequency_info ;; 11962306a36Sopenharmony_ci frequency-set) _frequency_set ;; 12062306a36Sopenharmony_ci idle-info) _idle_info ;; 12162306a36Sopenharmony_ci idle-set) _idle_set ;; 12262306a36Sopenharmony_ci set) _set ;; 12362306a36Sopenharmony_ci monitor) _monitor ;; 12462306a36Sopenharmony_ci esac 12562306a36Sopenharmony_ci} 12662306a36Sopenharmony_ci 12762306a36Sopenharmony_cicomplete -o bashdefault -o default -F _cpupower cpupower 2>/dev/null \ 12862306a36Sopenharmony_ci || complete -o default -F _cpupower cpupower 129