1*58e6ee5fSAndroid Build Coastguard Workershow_instances() 2*58e6ee5fSAndroid Build Coastguard Worker{ 3*58e6ee5fSAndroid Build Coastguard Worker local cur="$1" 4*58e6ee5fSAndroid Build Coastguard Worker local bufs=$(trace-cmd list -B) 5*58e6ee5fSAndroid Build Coastguard Worker if [ "$bufs" == "No buffer instances defined" ]; then 6*58e6ee5fSAndroid Build Coastguard Worker return 0 7*58e6ee5fSAndroid Build Coastguard Worker fi 8*58e6ee5fSAndroid Build Coastguard Worker COMPREPLY=( $(compgen -W "${bufs}" -- "${cur}") ) 9*58e6ee5fSAndroid Build Coastguard Worker return 0 10*58e6ee5fSAndroid Build Coastguard Worker} 11*58e6ee5fSAndroid Build Coastguard Worker 12*58e6ee5fSAndroid Build Coastguard Workershow_virt() 13*58e6ee5fSAndroid Build Coastguard Worker{ 14*58e6ee5fSAndroid Build Coastguard Worker local cur="$1" 15*58e6ee5fSAndroid Build Coastguard Worker if ! which virsh &>/dev/null; then 16*58e6ee5fSAndroid Build Coastguard Worker return 1 17*58e6ee5fSAndroid Build Coastguard Worker fi 18*58e6ee5fSAndroid Build Coastguard Worker local virt=`virsh list | awk '/^ *[0-9]/ { print $2 }'` 19*58e6ee5fSAndroid Build Coastguard Worker COMPREPLY=( $(compgen -W "${virt}" -- "${cur}") ) 20*58e6ee5fSAndroid Build Coastguard Worker return 0 21*58e6ee5fSAndroid Build Coastguard Worker} 22*58e6ee5fSAndroid Build Coastguard Worker 23*58e6ee5fSAndroid Build Coastguard Workershow_options() 24*58e6ee5fSAndroid Build Coastguard Worker{ 25*58e6ee5fSAndroid Build Coastguard Worker local cur="$1" 26*58e6ee5fSAndroid Build Coastguard Worker local options=$(trace-cmd list -o | sed -e 's/^\(no\)*\(.*\)/\2 no\2/') 27*58e6ee5fSAndroid Build Coastguard Worker COMPREPLY=( $(compgen -W "${options}" -- "${cur}") ) 28*58e6ee5fSAndroid Build Coastguard Worker return 0 29*58e6ee5fSAndroid Build Coastguard Worker} 30*58e6ee5fSAndroid Build Coastguard Worker 31*58e6ee5fSAndroid Build Coastguard Worker__show_files() 32*58e6ee5fSAndroid Build Coastguard Worker{ 33*58e6ee5fSAndroid Build Coastguard Worker COMPREPLY=( $(compgen -f -- "$cur") ) 34*58e6ee5fSAndroid Build Coastguard Worker if [ ${#COMPREPLY[@]} -gt 1 ]; then 35*58e6ee5fSAndroid Build Coastguard Worker return 0; 36*58e6ee5fSAndroid Build Coastguard Worker fi 37*58e6ee5fSAndroid Build Coastguard Worker # directories get '/' instead of space 38*58e6ee5fSAndroid Build Coastguard Worker DIRS=( $(compgen -d -- "$cur")) 39*58e6ee5fSAndroid Build Coastguard Worker if [ ${#DIRS[@]} -eq 1 ]; then 40*58e6ee5fSAndroid Build Coastguard Worker compopt -o nospace 41*58e6ee5fSAndroid Build Coastguard Worker COMPREPLY="$DIRS/" 42*58e6ee5fSAndroid Build Coastguard Worker return 0; 43*58e6ee5fSAndroid Build Coastguard Worker fi 44*58e6ee5fSAndroid Build Coastguard Worker return 0 45*58e6ee5fSAndroid Build Coastguard Worker} 46*58e6ee5fSAndroid Build Coastguard Worker 47*58e6ee5fSAndroid Build Coastguard Workercmd_options() 48*58e6ee5fSAndroid Build Coastguard Worker{ 49*58e6ee5fSAndroid Build Coastguard Worker local type="$1" 50*58e6ee5fSAndroid Build Coastguard Worker local cur="$2" 51*58e6ee5fSAndroid Build Coastguard Worker local cmds=$(trace-cmd $type -h 2>/dev/null|grep "^ *-" | \ 52*58e6ee5fSAndroid Build Coastguard Worker sed -e 's/ *\(-[^ ]*\).*/\1/') 53*58e6ee5fSAndroid Build Coastguard Worker COMPREPLY=( $(compgen -W "${cmds}" -- "${cur}") ) 54*58e6ee5fSAndroid Build Coastguard Worker if [ ${#COMPREPLY[@]} -eq 0 ]; then 55*58e6ee5fSAndroid Build Coastguard Worker __show_files "${cur}" 56*58e6ee5fSAndroid Build Coastguard Worker fi 57*58e6ee5fSAndroid Build Coastguard Worker} 58*58e6ee5fSAndroid Build Coastguard Worker 59*58e6ee5fSAndroid Build Coastguard Workerplugin_options() 60*58e6ee5fSAndroid Build Coastguard Worker{ 61*58e6ee5fSAndroid Build Coastguard Worker local cur="$1" 62*58e6ee5fSAndroid Build Coastguard Worker 63*58e6ee5fSAndroid Build Coastguard Worker local opts=$(trace-cmd list -O | sed -ne 's/option://p') 64*58e6ee5fSAndroid Build Coastguard Worker COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) 65*58e6ee5fSAndroid Build Coastguard Worker} 66*58e6ee5fSAndroid Build Coastguard Worker 67*58e6ee5fSAndroid Build Coastguard Workercompression_param() 68*58e6ee5fSAndroid Build Coastguard Worker{ 69*58e6ee5fSAndroid Build Coastguard Worker local opts=$(trace-cmd list -c | grep -v 'Supported' | cut -d "," -f1) 70*58e6ee5fSAndroid Build Coastguard Worker opts+=" any none " 71*58e6ee5fSAndroid Build Coastguard Worker COMPREPLY=( $(compgen -W "${opts}") ) 72*58e6ee5fSAndroid Build Coastguard Worker} 73*58e6ee5fSAndroid Build Coastguard Worker 74*58e6ee5fSAndroid Build Coastguard Worker__trace_cmd_list_complete() 75*58e6ee5fSAndroid Build Coastguard Worker{ 76*58e6ee5fSAndroid Build Coastguard Worker local prev=$1 77*58e6ee5fSAndroid Build Coastguard Worker local cur=$2 78*58e6ee5fSAndroid Build Coastguard Worker shift 2 79*58e6ee5fSAndroid Build Coastguard Worker local words=("$@") 80*58e6ee5fSAndroid Build Coastguard Worker 81*58e6ee5fSAndroid Build Coastguard Worker case "$prev" in 82*58e6ee5fSAndroid Build Coastguard Worker list) 83*58e6ee5fSAndroid Build Coastguard Worker local cmds=$(trace-cmd list -h |egrep "^ {10}-" | \ 84*58e6ee5fSAndroid Build Coastguard Worker sed -e 's/.*\(-.\).*/\1/') 85*58e6ee5fSAndroid Build Coastguard Worker COMPREPLY=( $(compgen -W "${cmds}" -- "${cur}") ) 86*58e6ee5fSAndroid Build Coastguard Worker ;; 87*58e6ee5fSAndroid Build Coastguard Worker *) 88*58e6ee5fSAndroid Build Coastguard Worker size=${#words[@]} 89*58e6ee5fSAndroid Build Coastguard Worker if [ $size -gt 3 ]; then 90*58e6ee5fSAndroid Build Coastguard Worker if [ "$cur" == "-" ]; then 91*58e6ee5fSAndroid Build Coastguard Worker let size=$size-3 92*58e6ee5fSAndroid Build Coastguard Worker else 93*58e6ee5fSAndroid Build Coastguard Worker let size=$size-2 94*58e6ee5fSAndroid Build Coastguard Worker fi 95*58e6ee5fSAndroid Build Coastguard Worker local w="${words[$size]}" 96*58e6ee5fSAndroid Build Coastguard Worker if [ "$w" == "-e" ]; then 97*58e6ee5fSAndroid Build Coastguard Worker local cmds=$(trace-cmd list -h |egrep "^ {12}-" | \ 98*58e6ee5fSAndroid Build Coastguard Worker sed -e 's/.*\(-.\).*/\1/') 99*58e6ee5fSAndroid Build Coastguard Worker COMPREPLY=( $(compgen -W "${cmds}" -- "${cur}") ) 100*58e6ee5fSAndroid Build Coastguard Worker fi 101*58e6ee5fSAndroid Build Coastguard Worker fi 102*58e6ee5fSAndroid Build Coastguard Worker ;; 103*58e6ee5fSAndroid Build Coastguard Worker esac 104*58e6ee5fSAndroid Build Coastguard Worker} 105*58e6ee5fSAndroid Build Coastguard Worker 106*58e6ee5fSAndroid Build Coastguard Worker__trace_cmd_show_complete() 107*58e6ee5fSAndroid Build Coastguard Worker{ 108*58e6ee5fSAndroid Build Coastguard Worker local prev=$1 109*58e6ee5fSAndroid Build Coastguard Worker local cur=$2 110*58e6ee5fSAndroid Build Coastguard Worker shift 2 111*58e6ee5fSAndroid Build Coastguard Worker local words=("$@") 112*58e6ee5fSAndroid Build Coastguard Worker 113*58e6ee5fSAndroid Build Coastguard Worker case "$prev" in 114*58e6ee5fSAndroid Build Coastguard Worker -B) 115*58e6ee5fSAndroid Build Coastguard Worker show_instances "$cur" 116*58e6ee5fSAndroid Build Coastguard Worker ;; 117*58e6ee5fSAndroid Build Coastguard Worker *) 118*58e6ee5fSAndroid Build Coastguard Worker cmd_options show "$cur" 119*58e6ee5fSAndroid Build Coastguard Worker ;; 120*58e6ee5fSAndroid Build Coastguard Worker esac 121*58e6ee5fSAndroid Build Coastguard Worker} 122*58e6ee5fSAndroid Build Coastguard Worker 123*58e6ee5fSAndroid Build Coastguard Worker__trace_cmd_extract_complete() 124*58e6ee5fSAndroid Build Coastguard Worker{ 125*58e6ee5fSAndroid Build Coastguard Worker local prev=$1 126*58e6ee5fSAndroid Build Coastguard Worker local cur=$2 127*58e6ee5fSAndroid Build Coastguard Worker shift 2 128*58e6ee5fSAndroid Build Coastguard Worker local words=("$@") 129*58e6ee5fSAndroid Build Coastguard Worker 130*58e6ee5fSAndroid Build Coastguard Worker case "$prev" in 131*58e6ee5fSAndroid Build Coastguard Worker extract) 132*58e6ee5fSAndroid Build Coastguard Worker cmd_options "$prev" "$cur" 133*58e6ee5fSAndroid Build Coastguard Worker ;; 134*58e6ee5fSAndroid Build Coastguard Worker -B) 135*58e6ee5fSAndroid Build Coastguard Worker show_instances "$cur" 136*58e6ee5fSAndroid Build Coastguard Worker ;; 137*58e6ee5fSAndroid Build Coastguard Worker *) 138*58e6ee5fSAndroid Build Coastguard Worker __show_files 139*58e6ee5fSAndroid Build Coastguard Worker ;; 140*58e6ee5fSAndroid Build Coastguard Worker esac 141*58e6ee5fSAndroid Build Coastguard Worker} 142*58e6ee5fSAndroid Build Coastguard Worker 143*58e6ee5fSAndroid Build Coastguard Worker__trace_cmd_record_complete() 144*58e6ee5fSAndroid Build Coastguard Worker{ 145*58e6ee5fSAndroid Build Coastguard Worker local prev=$1 146*58e6ee5fSAndroid Build Coastguard Worker local cur=$2 147*58e6ee5fSAndroid Build Coastguard Worker shift 2 148*58e6ee5fSAndroid Build Coastguard Worker local words=("$@") 149*58e6ee5fSAndroid Build Coastguard Worker 150*58e6ee5fSAndroid Build Coastguard Worker case "$prev" in 151*58e6ee5fSAndroid Build Coastguard Worker -e) 152*58e6ee5fSAndroid Build Coastguard Worker local list=$(trace-cmd list -e "$cur") 153*58e6ee5fSAndroid Build Coastguard Worker local prefix=${cur%%:*} 154*58e6ee5fSAndroid Build Coastguard Worker if [ -z "$cur" -o "$cur" != "$prefix" ]; then 155*58e6ee5fSAndroid Build Coastguard Worker COMPREPLY=( $(compgen -W "all ${list}" -- "${cur}") ) 156*58e6ee5fSAndroid Build Coastguard Worker else 157*58e6ee5fSAndroid Build Coastguard Worker local events=$(for e in $list; do echo ${e/*:/}; done | sort -u) 158*58e6ee5fSAndroid Build Coastguard Worker local systems=$(for s in $list; do echo ${s/:*/:}; done | sort -u) 159*58e6ee5fSAndroid Build Coastguard Worker 160*58e6ee5fSAndroid Build Coastguard Worker COMPREPLY=( $(compgen -W "all ${events} ${systems}" -- "${cur}") ) 161*58e6ee5fSAndroid Build Coastguard Worker fi 162*58e6ee5fSAndroid Build Coastguard Worker 163*58e6ee5fSAndroid Build Coastguard Worker # This is still to handle the "*:*" special case 164*58e6ee5fSAndroid Build Coastguard Worker if [[ -n "$prefix" ]]; then 165*58e6ee5fSAndroid Build Coastguard Worker local reply_n=${#COMPREPLY[*]} 166*58e6ee5fSAndroid Build Coastguard Worker for (( i = 0; i < $reply_n; i++)); do 167*58e6ee5fSAndroid Build Coastguard Worker COMPREPLY[$i]=${COMPREPLY[i]##${prefix}:} 168*58e6ee5fSAndroid Build Coastguard Worker done 169*58e6ee5fSAndroid Build Coastguard Worker fi 170*58e6ee5fSAndroid Build Coastguard Worker ;; 171*58e6ee5fSAndroid Build Coastguard Worker -p) 172*58e6ee5fSAndroid Build Coastguard Worker local plugins=$(trace-cmd list -p) 173*58e6ee5fSAndroid Build Coastguard Worker COMPREPLY=( $(compgen -W "${plugins}" -- "${cur}" ) ) 174*58e6ee5fSAndroid Build Coastguard Worker ;; 175*58e6ee5fSAndroid Build Coastguard Worker -l|-n|-g) 176*58e6ee5fSAndroid Build Coastguard Worker # This is extremely slow still (may take >1sec). 177*58e6ee5fSAndroid Build Coastguard Worker local funcs=$(trace-cmd list -f | sed 's/ .*//') 178*58e6ee5fSAndroid Build Coastguard Worker COMPREPLY=( $(compgen -W "${funcs}" -- "${cur}") ) 179*58e6ee5fSAndroid Build Coastguard Worker ;; 180*58e6ee5fSAndroid Build Coastguard Worker -B) 181*58e6ee5fSAndroid Build Coastguard Worker show_instances "$cur" 182*58e6ee5fSAndroid Build Coastguard Worker ;; 183*58e6ee5fSAndroid Build Coastguard Worker -O) 184*58e6ee5fSAndroid Build Coastguard Worker show_options "$cur" 185*58e6ee5fSAndroid Build Coastguard Worker ;; 186*58e6ee5fSAndroid Build Coastguard Worker -A) 187*58e6ee5fSAndroid Build Coastguard Worker if ! show_virt "$cur"; then 188*58e6ee5fSAndroid Build Coastguard Worker cmd_options record "$cur" 189*58e6ee5fSAndroid Build Coastguard Worker fi 190*58e6ee5fSAndroid Build Coastguard Worker ;; 191*58e6ee5fSAndroid Build Coastguard Worker --compression) 192*58e6ee5fSAndroid Build Coastguard Worker compression_param 193*58e6ee5fSAndroid Build Coastguard Worker ;; 194*58e6ee5fSAndroid Build Coastguard Worker *) 195*58e6ee5fSAndroid Build Coastguard Worker # stream start and profile do not show all options 196*58e6ee5fSAndroid Build Coastguard Worker cmd_options record "$cur" 197*58e6ee5fSAndroid Build Coastguard Worker ;; 198*58e6ee5fSAndroid Build Coastguard Worker esac 199*58e6ee5fSAndroid Build Coastguard Worker} 200*58e6ee5fSAndroid Build Coastguard Worker 201*58e6ee5fSAndroid Build Coastguard Worker__trace_cmd_report_complete() 202*58e6ee5fSAndroid Build Coastguard Worker{ 203*58e6ee5fSAndroid Build Coastguard Worker local prev=$1 204*58e6ee5fSAndroid Build Coastguard Worker local cur=$2 205*58e6ee5fSAndroid Build Coastguard Worker shift 2 206*58e6ee5fSAndroid Build Coastguard Worker local words=("$@") 207*58e6ee5fSAndroid Build Coastguard Worker 208*58e6ee5fSAndroid Build Coastguard Worker case "$prev" in 209*58e6ee5fSAndroid Build Coastguard Worker -O) 210*58e6ee5fSAndroid Build Coastguard Worker plugin_options "$cur" 211*58e6ee5fSAndroid Build Coastguard Worker ;; 212*58e6ee5fSAndroid Build Coastguard Worker *) 213*58e6ee5fSAndroid Build Coastguard Worker cmd_options report "$cur" 214*58e6ee5fSAndroid Build Coastguard Worker ;; 215*58e6ee5fSAndroid Build Coastguard Worker esac 216*58e6ee5fSAndroid Build Coastguard Worker} 217*58e6ee5fSAndroid Build Coastguard Worker 218*58e6ee5fSAndroid Build Coastguard Worker__trace_cmd_dump_complete() 219*58e6ee5fSAndroid Build Coastguard Worker{ 220*58e6ee5fSAndroid Build Coastguard Worker local prev=$1 221*58e6ee5fSAndroid Build Coastguard Worker local cur=$2 222*58e6ee5fSAndroid Build Coastguard Worker shift 2 223*58e6ee5fSAndroid Build Coastguard Worker local words=("$@") 224*58e6ee5fSAndroid Build Coastguard Worker 225*58e6ee5fSAndroid Build Coastguard Worker case "$prev" in 226*58e6ee5fSAndroid Build Coastguard Worker -i) 227*58e6ee5fSAndroid Build Coastguard Worker __show_files 228*58e6ee5fSAndroid Build Coastguard Worker ;; 229*58e6ee5fSAndroid Build Coastguard Worker *) 230*58e6ee5fSAndroid Build Coastguard Worker cmd_options dump "$cur" 231*58e6ee5fSAndroid Build Coastguard Worker ;; 232*58e6ee5fSAndroid Build Coastguard Worker esac 233*58e6ee5fSAndroid Build Coastguard Worker} 234*58e6ee5fSAndroid Build Coastguard Worker 235*58e6ee5fSAndroid Build Coastguard Worker__trace_cmd_convert_complete() 236*58e6ee5fSAndroid Build Coastguard Worker{ 237*58e6ee5fSAndroid Build Coastguard Worker local prev=$1 238*58e6ee5fSAndroid Build Coastguard Worker local cur=$2 239*58e6ee5fSAndroid Build Coastguard Worker shift 2 240*58e6ee5fSAndroid Build Coastguard Worker local words=("$@") 241*58e6ee5fSAndroid Build Coastguard Worker 242*58e6ee5fSAndroid Build Coastguard Worker case "$prev" in 243*58e6ee5fSAndroid Build Coastguard Worker -i) 244*58e6ee5fSAndroid Build Coastguard Worker __show_files 245*58e6ee5fSAndroid Build Coastguard Worker ;; 246*58e6ee5fSAndroid Build Coastguard Worker -o) 247*58e6ee5fSAndroid Build Coastguard Worker __show_files 248*58e6ee5fSAndroid Build Coastguard Worker ;; 249*58e6ee5fSAndroid Build Coastguard Worker --compression) 250*58e6ee5fSAndroid Build Coastguard Worker compression_param 251*58e6ee5fSAndroid Build Coastguard Worker ;; 252*58e6ee5fSAndroid Build Coastguard Worker *) 253*58e6ee5fSAndroid Build Coastguard Worker cmd_options convert "$cur" 254*58e6ee5fSAndroid Build Coastguard Worker ;; 255*58e6ee5fSAndroid Build Coastguard Worker esac 256*58e6ee5fSAndroid Build Coastguard Worker} 257*58e6ee5fSAndroid Build Coastguard Worker 258*58e6ee5fSAndroid Build Coastguard Worker__show_command_options() 259*58e6ee5fSAndroid Build Coastguard Worker{ 260*58e6ee5fSAndroid Build Coastguard Worker local command="$1" 261*58e6ee5fSAndroid Build Coastguard Worker local prev="$2" 262*58e6ee5fSAndroid Build Coastguard Worker local cur="$3" 263*58e6ee5fSAndroid Build Coastguard Worker local cmds=( $(trace-cmd --help 2>/dev/null | \ 264*58e6ee5fSAndroid Build Coastguard Worker grep " - " | sed 's/^ *//; s/ -.*//') ) 265*58e6ee5fSAndroid Build Coastguard Worker 266*58e6ee5fSAndroid Build Coastguard Worker for cmd in ${cmds[@]}; do 267*58e6ee5fSAndroid Build Coastguard Worker if [ $cmd == "$command" ]; then 268*58e6ee5fSAndroid Build Coastguard Worker local opts=$(trace-cmd $cmd -h 2>/dev/null|grep "^ *-" | \ 269*58e6ee5fSAndroid Build Coastguard Worker sed -e 's/ *\(-[^ ]*\).*/\1/') 270*58e6ee5fSAndroid Build Coastguard Worker if [ "$prev" == "-B" ]; then 271*58e6ee5fSAndroid Build Coastguard Worker for opt in ${opts[@]}; do 272*58e6ee5fSAndroid Build Coastguard Worker if [ "$opt" == "-B" ]; then 273*58e6ee5fSAndroid Build Coastguard Worker show_instances "$cur" 274*58e6ee5fSAndroid Build Coastguard Worker return 0 275*58e6ee5fSAndroid Build Coastguard Worker fi 276*58e6ee5fSAndroid Build Coastguard Worker done 277*58e6ee5fSAndroid Build Coastguard Worker fi 278*58e6ee5fSAndroid Build Coastguard Worker COMPREPLY=( $(compgen -W "${opts}" -- "$cur")) 279*58e6ee5fSAndroid Build Coastguard Worker break 280*58e6ee5fSAndroid Build Coastguard Worker fi 281*58e6ee5fSAndroid Build Coastguard Worker done 282*58e6ee5fSAndroid Build Coastguard Worker if [ ${#COMPREPLY[@]} -eq 0 ]; then 283*58e6ee5fSAndroid Build Coastguard Worker __show_files "${cur}" 284*58e6ee5fSAndroid Build Coastguard Worker fi 285*58e6ee5fSAndroid Build Coastguard Worker} 286*58e6ee5fSAndroid Build Coastguard Worker 287*58e6ee5fSAndroid Build Coastguard Worker_trace_cmd_complete() 288*58e6ee5fSAndroid Build Coastguard Worker{ 289*58e6ee5fSAndroid Build Coastguard Worker local cur="" 290*58e6ee5fSAndroid Build Coastguard Worker local prev="" 291*58e6ee5fSAndroid Build Coastguard Worker local words=() 292*58e6ee5fSAndroid Build Coastguard Worker 293*58e6ee5fSAndroid Build Coastguard Worker # Not to use COMP_WORDS to avoid buggy behavior of Bash when 294*58e6ee5fSAndroid Build Coastguard Worker # handling with words including ":", like: 295*58e6ee5fSAndroid Build Coastguard Worker # 296*58e6ee5fSAndroid Build Coastguard Worker # prev="${COMP_WORDS[COMP_CWORD-1]}" 297*58e6ee5fSAndroid Build Coastguard Worker # cur="${COMP_WORDS[COMP_CWORD]}" 298*58e6ee5fSAndroid Build Coastguard Worker # 299*58e6ee5fSAndroid Build Coastguard Worker # Instead, we use _get_comp_words_by_ref() magic. 300*58e6ee5fSAndroid Build Coastguard Worker _get_comp_words_by_ref -n : cur prev words 301*58e6ee5fSAndroid Build Coastguard Worker 302*58e6ee5fSAndroid Build Coastguard Worker if [ "$prev" == "trace-cmd" ]; then 303*58e6ee5fSAndroid Build Coastguard Worker local cmds=$(trace-cmd --help 2>/dev/null | \ 304*58e6ee5fSAndroid Build Coastguard Worker grep " - " | sed 's/^ *//; s/ -.*//') 305*58e6ee5fSAndroid Build Coastguard Worker COMPREPLY=( $(compgen -W "${cmds}" -- "${cur}") ) 306*58e6ee5fSAndroid Build Coastguard Worker return; 307*58e6ee5fSAndroid Build Coastguard Worker fi 308*58e6ee5fSAndroid Build Coastguard Worker 309*58e6ee5fSAndroid Build Coastguard Worker local w="${words[1]}" 310*58e6ee5fSAndroid Build Coastguard Worker 311*58e6ee5fSAndroid Build Coastguard Worker case "$w" in 312*58e6ee5fSAndroid Build Coastguard Worker list) 313*58e6ee5fSAndroid Build Coastguard Worker __trace_cmd_list_complete "${prev}" "${cur}" ${words[@]} 314*58e6ee5fSAndroid Build Coastguard Worker return 0 315*58e6ee5fSAndroid Build Coastguard Worker ;; 316*58e6ee5fSAndroid Build Coastguard Worker show) 317*58e6ee5fSAndroid Build Coastguard Worker __trace_cmd_show_complete "${prev}" "${cur}" ${words[@]} 318*58e6ee5fSAndroid Build Coastguard Worker return 0 319*58e6ee5fSAndroid Build Coastguard Worker ;; 320*58e6ee5fSAndroid Build Coastguard Worker extract) 321*58e6ee5fSAndroid Build Coastguard Worker __trace_cmd_extract_complete "${prev}" "${cur}" ${words[@]} 322*58e6ee5fSAndroid Build Coastguard Worker return 0 323*58e6ee5fSAndroid Build Coastguard Worker ;; 324*58e6ee5fSAndroid Build Coastguard Worker record|stream|start|profile) 325*58e6ee5fSAndroid Build Coastguard Worker __trace_cmd_record_complete "${prev}" "${cur}" ${words[@]} 326*58e6ee5fSAndroid Build Coastguard Worker return 0 327*58e6ee5fSAndroid Build Coastguard Worker ;; 328*58e6ee5fSAndroid Build Coastguard Worker report) 329*58e6ee5fSAndroid Build Coastguard Worker __trace_cmd_report_complete "${prev}" "${cur}" ${words[@]} 330*58e6ee5fSAndroid Build Coastguard Worker return 0 331*58e6ee5fSAndroid Build Coastguard Worker ;; 332*58e6ee5fSAndroid Build Coastguard Worker dump) 333*58e6ee5fSAndroid Build Coastguard Worker __trace_cmd_dump_complete "${prev}" "${cur}" ${words[@]} 334*58e6ee5fSAndroid Build Coastguard Worker return 0 335*58e6ee5fSAndroid Build Coastguard Worker ;; 336*58e6ee5fSAndroid Build Coastguard Worker convert) 337*58e6ee5fSAndroid Build Coastguard Worker __trace_cmd_convert_complete "${prev}" "${cur}" ${words[@]} 338*58e6ee5fSAndroid Build Coastguard Worker return 0 339*58e6ee5fSAndroid Build Coastguard Worker ;; 340*58e6ee5fSAndroid Build Coastguard Worker *) 341*58e6ee5fSAndroid Build Coastguard Worker __show_command_options "$w" "${prev}" "${cur}" 342*58e6ee5fSAndroid Build Coastguard Worker ;; 343*58e6ee5fSAndroid Build Coastguard Worker esac 344*58e6ee5fSAndroid Build Coastguard Worker} 345*58e6ee5fSAndroid Build Coastguard Workercomplete -F _trace_cmd_complete trace-cmd 346