forked from pool/cpupower
a694a76be1
- Add bash completion for cpupower command (from mainline submit) A cpupower_bash-completion_for_cpupower_tool.patch OBS-URL: https://build.opensuse.org/request/show/653833 OBS-URL: https://build.opensuse.org/package/show/hardware/cpupower?expand=0&rev=85
176 lines
5.5 KiB
Diff
176 lines
5.5 KiB
Diff
From: "Abhishek Goel" <huntbag@linux.vnet.ibm.com>
|
|
|
|
cpupower : bash-completion for cpupower tool
|
|
|
|
Signed-off-by: Abhishek Goel <huntbag@linux.vnet.ibm.com>
|
|
---
|
|
Makefile | 4 +-
|
|
cpupower-completion.bash | 129 ++++++++++++++++++
|
|
2 files changed, 132 insertions(+), 1 deletion(-)
|
|
create mode 100644 cpupower-completion.bash
|
|
|
|
Index: cpupower-4.19/Makefile
|
|
===================================================================
|
|
--- cpupower-4.19.orig/Makefile 2018-12-04 12:56:27.824106229 +0100
|
|
+++ cpupower-4.19/Makefile 2018-12-04 13:16:53.452172269 +0100
|
|
@@ -87,6 +87,7 @@ endif
|
|
localedir ?= /usr/share/locale
|
|
docdir ?= /usr/share/doc/packages/cpupower
|
|
confdir ?= /etc/
|
|
+bash_completion_dir ?= /usr/share/bash-completion/completions
|
|
|
|
# Toolchain: what tools do we use, and what options do they need:
|
|
|
|
@@ -94,7 +95,7 @@ CP = cp -fpR
|
|
INSTALL = /usr/bin/install -c
|
|
INSTALL_PROGRAM = ${INSTALL}
|
|
INSTALL_DATA = ${INSTALL} -m 644
|
|
-INSTALL_SCRIPT = ${INSTALL_PROGRAM}
|
|
+INSTALL_SCRIPT = ${INSTALL} -m 755
|
|
|
|
# If you are running a cross compiler, you may want to set this
|
|
# to something more interesting, like "arm-linux-". If you want
|
|
@@ -288,6 +289,8 @@ install-lib:
|
|
install-tools:
|
|
$(INSTALL) -d $(DESTDIR)${bindir}
|
|
$(INSTALL_PROGRAM) $(OUTPUT)cpupower $(DESTDIR)${bindir}
|
|
+ $(INSTALL) -d $(DESTDIR)${bindir}
|
|
+ $(INSTALL_DATA) -D cpupower-completion.sh '$(DESTDIR)${bash_completion_dir}/cpupower'
|
|
|
|
install-man:
|
|
$(INSTALL_DATA) -D man/cpupower.1 $(DESTDIR)${mandir}/man1/cpupower.1
|
|
Index: cpupower-4.19/cpupower-completion.sh
|
|
===================================================================
|
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
|
+++ cpupower-4.19/cpupower-completion.sh 2018-12-04 12:58:53.776114094 +0100
|
|
@@ -0,0 +1,129 @@
|
|
+# -*- 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
|