Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 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 |