#!/bin/bash #case ${firstWord} # $section ) # COMPREPLY=( $(compgen -W "$functions" -- ${cur}) ) # case ${secondWord} # $param ) # COMPREPLY=( $(compgen -W "$values" -- ${cur}) ) # return 0 ;; # $param ) # COMPREPLY=( $(compgen -W "\$($values" -- ${cur}) ) # return 0 ;; # esac # return 0 ;; #esac outfile=./_cpapi2.sh cat header-stub.sh > $outfile #echo -ne 'opts=\"--help --output ' #for dir in docs/*/; do # basename $dir | sed 's|/$||g'; #done | tr '\n' ' ' | sed 's/ $//' #echo '"' for dir in docs/*/; do sectionName=$(basename $dir | sed 's|/$||g') functionList=$(for x in $dir/*; do basename $x; done | tr '\n' ' ' | sed 's/ $//') echo " $sectionName ) COMPREPLY=( \$(compgen -W \"$functionList\" -- \${cur}) ) case \${functionName} in" for functionName in $functionList; do filename="$dir/$functionName" parameters=$(sed '/^$/d' $filename | cut -d: -f1 | sed 's/|/ /g' | grep -v '#' | tr '\n' ' ' | sed 's/ $//') echo " $(head -n1 $filename) $functionName ) COMPREPLY=( \$(compgen -W \"$parameters\" -- \${cur}) )" if [[ $parameters ]]; then echo -e " case \${prev} in" sed '/^$/d' $filename | grep -v '#' | while read line; do param=$(echo $line | cut -d: -f1 | sed 's/{1..10}/*/g') values=$(echo $line | cut -d: -f2 | sed 's/^ //') if [[ $values =~ ^_ ]]; then echo " $param ) COMPREPLY=( \$(compgen -W \"\$(_cpapi${values})\" -- \${cur}) ) return 0 ;;" else echo " $param ) COMPREPLY=( \$(compgen -W \"${values}\" -- \${cur}) ) return 0 ;;" fi done echo " esac" fi echo " return 0 ;;" done echo " esac return 0 ;;" done >> $outfile cat footer-stub.sh >> $outfile sed -i "s/CURRENT_DATETIME/$(date +%F)/" $outfile