@@ -30,6 +30,16 @@ _cliname() {
3030 cur=$(( cur + opts_cur + 1 ))
3131 ;;
3232
33+ _cliname,scripts)
34+ cmd=" _cliname_scripts"
35+ cur=$(( cur + opts_cur + 1 ))
36+ ;;
37+
38+ _cliname_scripts,run)
39+ cmd=" _cliname_scripts_run"
40+ cur=$(( cur + opts_cur + 1 ))
41+ ;;
42+
3343 _cliname,test)
3444 cmd=" _cliname_test"
3545 cur=$(( cur + opts_cur + 1 ))
@@ -94,7 +104,7 @@ _cliname() {
94104 COMPREPLY=( $( compgen -W " ${opts} " -- " ${COMP_WORDS[COMP_CWORD]} " ) )
95105 return 0
96106 elif [ $cur -eq $COMP_CWORD ] ; then
97- opts=" list ls cd test"
107+ opts=" list ls cd scripts test"
98108 COMPREPLY=( $( compgen -W " ${opts} " -- " ${COMP_WORDS[COMP_CWORD]} " ) )
99109 return 0
100110 fi
@@ -172,6 +182,57 @@ _cliname() {
172182 return 0
173183 ;;
174184
185+ _cliname_scripts)
186+ cmd_cur=$cur
187+ while [ $cur -lt $COMP_CWORD ] ; do
188+ cur=$(( cur + 1 ))
189+ done
190+
191+ if [[ ${COMP_WORDS[COMP_CWORD]} == -* ]] ; then
192+ opts=" "
193+ COMPREPLY=( $( compgen -W " ${opts} " -- " ${COMP_WORDS[COMP_CWORD]} " ) )
194+ return 0
195+ elif [ $cur -eq $COMP_CWORD ] ; then
196+ opts=" run"
197+ COMPREPLY=( $( compgen -W " ${opts} " -- " ${COMP_WORDS[COMP_CWORD]} " ) )
198+ return 0
199+ fi
200+
201+ return 0
202+ ;;
203+
204+ _cliname_scripts_run)
205+ cmd_cur=$cur
206+ while [ $cur -lt $COMP_CWORD ] ; do
207+ cur=$(( cur + 1 ))
208+ case " ${COMP_WORDS[cur-1]} " in
209+ --all|-a)
210+ cmd_cur=$(( cmd_cur + 1 ))
211+ ;;
212+
213+ * )
214+ break
215+ ;;
216+ esac
217+ done
218+
219+ if [[ ${COMP_WORDS[COMP_CWORD]} == -* ]] ; then
220+ opts=" --all -a"
221+ COMPREPLY=( $( compgen -W " ${opts} " -- " ${COMP_WORDS[COMP_CWORD]} " ) )
222+ return 0
223+ fi
224+ cur=$COMP_CWORD
225+ if [ $cur -eq $COMP_CWORD ] ; then
226+ COMPREPLY=( $( compgen -W " echo 'script1.sh script2.sh script3.sh'" -- " $cur " ) )
227+
228+ return 0
229+ else
230+ cmd_cur=$(( cmd_cur + 2 ))
231+ fi
232+
233+ return 0
234+ ;;
235+
175236 _cliname_test)
176237 cmd_cur=$cur
177238 while [ $cur -lt $COMP_CWORD ] ; do
0 commit comments