| # -*- 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 |