appctl-completion.bash 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. # Bash completion for appctl. Source this from your ~/.bashrc:
  2. # source /path/to/sprint_planer_web/bin/appctl-completion.bash
  3. # `appctl` will offer to add that line on first run.
  4. _appctl_complete() {
  5. local cur prev cword
  6. COMPREPLY=()
  7. cur="${COMP_WORDS[COMP_CWORD]}"
  8. cword="${COMP_CWORD}"
  9. prev="${COMP_WORDS[cword-1]}"
  10. local top="dev prod lint test check completion help"
  11. if (( cword == 1 )); then
  12. # shellcheck disable=SC2207
  13. COMPREPLY=( $(compgen -W "${top}" -- "${cur}") )
  14. return 0
  15. fi
  16. if (( cword == 2 )); then
  17. case "${COMP_WORDS[1]}" in
  18. dev)
  19. # shellcheck disable=SC2207
  20. COMPREPLY=( $(compgen -W "start stop build shell logs" -- "${cur}") )
  21. return 0
  22. ;;
  23. prod)
  24. # shellcheck disable=SC2207
  25. COMPREPLY=( $(compgen -W "start stop build upgrade" -- "${cur}") )
  26. return 0
  27. ;;
  28. esac
  29. fi
  30. if (( cword == 3 )) \
  31. && [[ "${COMP_WORDS[1]}" == "prod" ]] \
  32. && [[ "${COMP_WORDS[2]}" == "upgrade" ]]; then
  33. local versions
  34. versions="latest test $(git tag --list 'v*' 2>/dev/null)"
  35. # shellcheck disable=SC2207
  36. COMPREPLY=( $(compgen -W "${versions}" -- "${cur}") )
  37. return 0
  38. fi
  39. return 0
  40. }
  41. complete -F _appctl_complete appctl
  42. complete -F _appctl_complete ./appctl