-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
cpupower : Auto-completion for cpupower tool
This script adds support for auto-completion for cpupower tool. Added support for auto-completion of all the eight commands for cpupower tool and their all subsequent sub-commands, wherever possible. A sample output after applying this script - root@ubuntu:~# cpupower f<TAB> root@ubuntu:~# cpupower frequency-<TAB> frequency-info frequency-set root@ubuntu:~# cpupower frequency-set - -d --freq --governor --min --related -f -g --max -r -u root@ubuntu:~# cpupower frequency-set -g <TAB> conservative ondemand performance powersave schedutil userspace root@ubuntu:~# cpupower frequency-set -f <TAB> 2061000 2194000 2327000 2460000 2593000 2726000 2859000 2094000 2227000 2360000 2493000 2626000 2759000 2892000 2128000 2261000 2394000 2527000 2660000 2793000 2926000 2161000 2294000 2427000 2560000 2693000 2826000 2959000 root@ubuntu:~# cpupower frequency-set -f 206<TAB> root@ubuntu:~# cpupower frequency-set -f 2061000 Signed-off-by: Abhishek Goel <huntbag@linux.vnet.ibm.com> Signed-off-by: Bharath Thodla <bharath.thodla@in.ibm.com> Tested-by: Thomas Renninger <trenn@suse.de> Signed-off-by: Shuah Khan <shuah@kernel.org>
- Loading branch information
Abhishek Goel
authored and
Shuah Khan
committed
Dec 5, 2018
1 parent
2595646
commit 901d32b
Showing
2 changed files
with
133 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,128 @@ | ||
# -*- shell-script -*- | ||
# bash completion script for cpupower | ||
# Taken from git.git's completion script. | ||
|
||
_cpupower_commands="frequency-info frequency-set idle-info idle-set set info monitor" | ||
|
||
_frequency_info () | ||
{ | ||
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" | ||
local prev="${COMP_WORDS[COMP_CWORD-1]}" | ||
local cur="${COMP_WORDS[COMP_CWORD]}" | ||
case "$prev" in | ||
frequency-info) COMPREPLY=($(compgen -W "$flags" -- "$cur")) ;; | ||
esac | ||
} | ||
|
||
_frequency_set () | ||
{ | ||
local flags="-f -g --freq --governor -d --min -u --max -r --related" | ||
local prev="${COMP_WORDS[COMP_CWORD-1]}" | ||
local cur="${COMP_WORDS[COMP_CWORD]}" | ||
case "$prev" in | ||
-f| --freq | -d | --min | -u | --max) | ||
if [ -d /sys/devices/system/cpu/cpufreq/ ] ; then | ||
COMPREPLY=($(compgen -W '$(cat $(ls -d /sys/devices/system/cpu/cpufreq/policy* | head -1)/scaling_available_frequencies)' -- "$cur")) | ||
fi ;; | ||
-g| --governor) | ||
if [ -d /sys/devices/system/cpu/cpufreq/ ] ; then | ||
COMPREPLY=($(compgen -W '$(cat $(ls -d /sys/devices/system/cpu/cpufreq/policy* | head -1)/scaling_available_governors)' -- "$cur")) | ||
fi;; | ||
frequency-set) COMPREPLY=($(compgen -W "$flags" -- "$cur")) ;; | ||
esac | ||
} | ||
|
||
_idle_info() | ||
{ | ||
local flags="-f --silent" | ||
local prev="${COMP_WORDS[COMP_CWORD-1]}" | ||
local cur="${COMP_WORDS[COMP_CWORD]}" | ||
case "$prev" in | ||
idle-info) COMPREPLY=($(compgen -W "$flags" -- "$cur")) ;; | ||
esac | ||
} | ||
|
||
_idle_set() | ||
{ | ||
local flags="-d --disable -e --enable -D --disable-by-latency -E --enable-all" | ||
local prev="${COMP_WORDS[COMP_CWORD-1]}" | ||
local cur="${COMP_WORDS[COMP_CWORD]}" | ||
case "$prev" in | ||
idle-set) COMPREPLY=($(compgen -W "$flags" -- "$cur")) ;; | ||
esac | ||
} | ||
|
||
_set() | ||
{ | ||
local flags="--perf-bias, -b" | ||
local prev="${COMP_WORDS[COMP_CWORD-1]}" | ||
local cur="${COMP_WORDS[COMP_CWORD]}" | ||
case "$prev" in | ||
set) COMPREPLY=($(compgen -W "$flags" -- "$cur")) ;; | ||
esac | ||
} | ||
|
||
_monitor() | ||
{ | ||
local flags="-l -m -i -c -v" | ||
local prev="${COMP_WORDS[COMP_CWORD-1]}" | ||
local cur="${COMP_WORDS[COMP_CWORD]}" | ||
case "$prev" in | ||
monitor) COMPREPLY=($(compgen -W "$flags" -- "$cur")) ;; | ||
esac | ||
} | ||
|
||
_taskset() | ||
{ | ||
local prev_to_prev="${COMP_WORDS[COMP_CWORD-2]}" | ||
local prev="${COMP_WORDS[COMP_CWORD-1]}" | ||
local cur="${COMP_WORDS[COMP_CWORD]}" | ||
case "$prev_to_prev" in | ||
-c|--cpu) COMPREPLY=($(compgen -W "$_cpupower_commands" -- "$cur")) ;; | ||
esac | ||
case "$prev" in | ||
frequency-info) _frequency_info ;; | ||
frequency-set) _frequency_set ;; | ||
idle-info) _idle_info ;; | ||
idle-set) _idle_set ;; | ||
set) _set ;; | ||
monitor) _monitor ;; | ||
esac | ||
|
||
} | ||
|
||
_cpupower () | ||
{ | ||
local i | ||
local c=1 | ||
local command | ||
|
||
while test $c -lt $COMP_CWORD; do | ||
if test $c == 1; then | ||
command="${COMP_WORDS[c]}" | ||
fi | ||
c=$((++c)) | ||
done | ||
|
||
# Complete name of subcommand if the user has not finished typing it yet. | ||
if test $c -eq $COMP_CWORD -a -z "$command"; then | ||
COMPREPLY=($(compgen -W "help -v --version -c --cpu $_cpupower_commands" -- "${COMP_WORDS[COMP_CWORD]}")) | ||
return | ||
fi | ||
|
||
# Complete arguments to subcommands. | ||
case "$command" in | ||
-v|--version) return ;; | ||
-c|--cpu) _taskset ;; | ||
help) COMPREPLY=($(compgen -W "$_cpupower_commands" -- "${COMP_WORDS[COMP_CWORD]}")) ;; | ||
frequency-info) _frequency_info ;; | ||
frequency-set) _frequency_set ;; | ||
idle-info) _idle_info ;; | ||
idle-set) _idle_set ;; | ||
set) _set ;; | ||
monitor) _monitor ;; | ||
esac | ||
} | ||
|
||
complete -o bashdefault -o default -F _cpupower cpupower 2>/dev/null \ | ||
|| complete -o default -F _cpupower cpupower |