Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- _ws_completions()
- {
- local cur prev firstword lastword complete_options complete_words
- cur=${COMP_WORDS[COMP_CWORD]}
- prev=${COMP_WORDS[COMP_CWORD-1]}
- firstword=$(_get_firstword)
- lastword=$(_get_lastword)
- GLOBAL_COMMAND="\
- goto\
- run\
- create\
- git\
- clone"
- GLOBAL_OPTIONS="\
- -u"
- GOTO_COMMAND="\
- beeketing\
- sitekit\
- capp\
- copt\
- go"
- RUN_CAPP_COMMAND="\
- capp-dashboard\
- capp-landing\
- capp-blog"
- RUN_BEEKETING_COMMAND="\
- beeketing-dashboard\
- beeketing-sdk"
- RUN_SITEKIT_COMMAND="\
- sitekit-dashboard\
- sitekit-landing\
- sitekit-sdk"
- RUN_COPT_COMMAND="\
- copt-dashboard\
- copt-sdk"
- complete_options="$GLOBAL_OPTIONS"
- complete_words="$GLOBAL_COMMAND"
- case "$firstword" in
- run)
- complete_words="$GOTO_COMMAND"
- case "$lastword" in
- capp)
- complete_words="$RUN_CAPP_COMMAND"
- if [[ $prev == -* ]]; then
- complete_words="$GLOBAL_OPTIONS"
- fi
- ;;
- beeketing)
- complete_words="$RUN_BEEKETING_COMMAND"
- if [[ $prev == -* ]]; then
- complete_words="$GLOBAL_OPTIONS"
- fi
- ;;
- sitekit)
- complete_words="$RUN_SITEKIT_COMMAND"
- if [[ $prev == -* ]]; then
- complete_words="$GLOBAL_OPTIONS"
- fi
- ;;
- copt)
- complete_words="$RUN_COPT_COMMAND"
- if [[ $prev == -* ]]; then
- complete_words="$GLOBAL_OPTIONS"
- fi
- ;;
- esac
- ;;
- goto|clone|create)
- complete_words="$GOTO_COMMAND"
- ;;
- esac
- if [[ $cur == -* ]]; then
- COMPREPLY=($(compgen -W "$complete_options" -- $cur))
- else
- COMPREPLY=($(compgen -W "$complete_words" -- $cur))
- fi
- }
- _get_firstword() {
- local firstword i
- firstword=
- for ((i = 1; i < ${#COMP_WORDS[@]}; ++i)); do
- if [[ ${COMP_WORDS[i]} != -* ]]; then
- firstword=${COMP_WORDS[i]}
- break
- fi
- done
- echo $firstword
- }
- _get_lastword() {
- local lastword i
- lastword=
- for ((i = 1; i < ${#COMP_WORDS[@]}; ++i)); do
- if [[ ${COMP_WORDS[i]} != -* ]] && [[ -n ${COMP_WORDS[i]} ]] && [[ ${COMP_WORDS[i]} != $cur ]]; then
- lastword=${COMP_WORDS[i]}
- fi
- done
- echo $lastword
- }
- complete -F _ws_completions ws
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement