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 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182
|
# bash completion for tlpctl
# AUTOMATICALLY GENERATED by `shtab` and EDITED
_shtab_tlpctl_subparsers=('performance' 'balanced' 'power-saver' 'list' 'list-holds' 'get' 'set' 'launch' 'loglevel' 'version')
_shtab_tlpctl_option_strings=('-h' '--help', '--version')
_shtab_tlpctl_performance_option_strings=('-h' '--help')
_shtab_tlpctl_balanced_option_strings=('-h' '--help')
_shtab_tlpctl_power_saver_option_strings=('-h' '--help')
_shtab_tlpctl_list_option_strings=('-h' '--help')
_shtab_tlpctl_list_holds_option_strings=('-h' '--help')
_shtab_tlpctl_get_option_strings=('-h' '--help')
_shtab_tlpctl_set_option_strings=('-h' '--help')
_shtab_tlpctl_launch_option_strings=('-h' '--help' '--profile' '-p' '--reason' '-r' '--appid' '-i')
_shtab_tlpctl_loglevel_option_strings=('-h' '--help')
_shtab_tlpctl_pos_0_choices=('performance' 'balanced' 'power-saver' 'list' 'list-holds' 'get' 'set' 'launch' 'loglevel' 'version')
_shtab_tlpctl_set_pos_0_choices=('performance' 'balanced' 'power-saver')
_shtab_tlpctl_loglevel_pos_0_choices=('info' 'debug')
_shtab_tlpctl_pos_0_nargs=A...
_shtab_tlpctl__h_nargs=0
_shtab_tlpctl___help_nargs=0
_shtab_tlpctl_performance__h_nargs=0
_shtab_tlpctl_performance___help_nargs=0
_shtab_tlpctl_balanced__h_nargs=0
_shtab_tlpctl_balanced___help_nargs=0
_shtab_tlpctl_power_saver__h_nargs=0
_shtab_tlpctl_power_saver___help_nargs=0
_shtab_tlpctl_list__h_nargs=0
_shtab_tlpctl_list___help_nargs=0
_shtab_tlpctl_list_holds__h_nargs=0
_shtab_tlpctl_list_holds___help_nargs=0
_shtab_tlpctl_get__h_nargs=0
_shtab_tlpctl_get___help_nargs=0
_shtab_tlpctl_set_pos_0_nargs=1
_shtab_tlpctl_set__h_nargs=0
_shtab_tlpctl_set___help_nargs=0
_shtab_tlpctl_launch_pos_0_nargs=*
_shtab_tlpctl_launch__h_nargs=0
_shtab_tlpctl_launch___help_nargs=0
_shtab_tlpctl_loglevel_pos_0_nargs=1
_shtab_tlpctl_loglevel__h_nargs=0
_shtab_tlpctl_loglevel___help_nargs=0
_shtab_tlpctl_version__h_nargs=0
_shtab_tlpctl_version___help_nargs=0
# $1=COMP_WORDS[1]
_shtab_compgen_files() {
compgen -f -- $1 # files
}
# $1=COMP_WORDS[1]
_shtab_compgen_dirs() {
compgen -d -- $1 # recurse into subdirs
}
# $1=COMP_WORDS[1]
_shtab_replace_nonword() {
echo "${1//[^[:word:]]/_}"
}
# set default values (called for the initial parser & any subparsers)
_set_parser_defaults() {
local subparsers_var="${prefix}_subparsers[@]"
sub_parsers=${!subparsers_var-}
local current_option_strings_var="${prefix}_option_strings[@]"
current_option_strings=${!current_option_strings_var}
completed_positional_actions=0
_set_new_action "pos_${completed_positional_actions}" true
}
# $1=action identifier
# $2=positional action (bool)
# set all identifiers for an action's parameters
_set_new_action() {
current_action="${prefix}_$(_shtab_replace_nonword $1)"
local current_action_compgen_var=${current_action}_COMPGEN
current_action_compgen="${!current_action_compgen_var-}"
local current_action_choices_var="${current_action}_choices[@]"
current_action_choices="${!current_action_choices_var-}"
local current_action_nargs_var="${current_action}_nargs"
if [ -n "${!current_action_nargs_var-}" ]; then
current_action_nargs="${!current_action_nargs_var}"
else
current_action_nargs=1
fi
current_action_args_start_index=$(( $word_index + 1 - $pos_only ))
current_action_is_positional=$2
}
# Notes:
# `COMPREPLY`: what will be rendered after completion is triggered
# `completing_word`: currently typed word to generate completions for
# `${!var}`: evaluates the content of `var` and expand its content as a variable
# hello="world"
# x="hello"
# ${!x} -> ${hello} -> "world"
_shtab_tlpctl() {
local completing_word="${COMP_WORDS[COMP_CWORD]}"
local previous_word="${COMP_WORDS[COMP_CWORD-1]}"
local completed_positional_actions
local current_action
local current_action_args_start_index
local current_action_choices
local current_action_compgen
local current_action_is_positional
local current_action_nargs
local current_option_strings
local sub_parsers
COMPREPLY=()
local prefix=_shtab_tlpctl
local word_index=0
local pos_only=0 # "--" delimeter not encountered yet
_set_parser_defaults
word_index=1
# determine what arguments are appropriate for the current state
# of the arg parser
while [ $word_index -ne $COMP_CWORD ]; do
local this_word="${COMP_WORDS[$word_index]}"
if [[ $pos_only = 1 || " $this_word " != " -- " ]]; then
if [[ -n $sub_parsers && " ${sub_parsers[@]} " == *" ${this_word} "* ]]; then
# valid subcommand: add it to the prefix & reset the current action
prefix="${prefix}_$(_shtab_replace_nonword $this_word)"
_set_parser_defaults
fi
if [[ " ${current_option_strings[@]} " == *" ${this_word} "* ]]; then
# a new action should be acquired (due to recognised option string or
# no more input expected from current action);
# the next positional action can fill in here
_set_new_action $this_word false
fi
if [[ "$current_action_nargs" != "*" ]] && \
[[ "$current_action_nargs" != "+" ]] && \
[[ "$current_action_nargs" != *"..." ]] && \
(( $word_index + 1 - $current_action_args_start_index - $pos_only >= \
$current_action_nargs )); then
$current_action_is_positional && let "completed_positional_actions += 1"
_set_new_action "pos_${completed_positional_actions}" true
fi
else
pos_only=1 # "--" delimeter encountered
fi
let "word_index+=1"
done
# Generate the completions
if [[ $pos_only = 0 && "${completing_word}" == -* ]]; then
# optional argument started: use option strings
COMPREPLY=( $(compgen -W "${current_option_strings[*]}" -- "${completing_word}") )
elif [[ "${previous_word}" == ">" || "${previous_word}" == ">>" ||
"${previous_word}" =~ ^[12]">" || "${previous_word}" =~ ^[12]">>" ]]; then
# handle redirection operators
COMPREPLY=( $(compgen -f -- "${completing_word}") )
else
# use choices & compgen
local IFS=$'\n' # items may contain spaces, so delimit using newline
COMPREPLY=( $([ -n "${current_action_compgen}" ] \
&& "${current_action_compgen}" "${completing_word}") )
unset IFS
COMPREPLY+=( $(compgen -W "${current_action_choices[*]}" -- "${completing_word}") )
fi
return 0
}
complete -o filenames -F _shtab_tlpctl tlpctl
|