completions.zsh 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. #!/bin/zsh
  2. _lazy_load_completion() {
  3. local cmd="$1"
  4. local completion_cmd="$2"
  5. eval "${cmd}() {
  6. unfunction $cmd
  7. eval \"\$($completion_cmd)\"
  8. $cmd \"\$@\"
  9. }"
  10. }
  11. for completion_file in ~/.local/share/zsh/*-autocomplete.zsh(N); do
  12. if [ -f "$completion_file" ]; then
  13. source "$completion_file"
  14. fi
  15. done
  16. if command -v eza &> /dev/null; then
  17. compdef eza=ls
  18. fi
  19. if command -v kubefwd &> /dev/null; then
  20. _lazy_load_completion kubefwd "kubefwd completion zsh"
  21. fi
  22. if command -v bombadil &> /dev/null; then
  23. _lazy_load_completion bombadil "bombadil generate-completions zsh"
  24. fi
  25. if command -v rop &> /dev/null; then
  26. eval "$(rop completion zsh)"
  27. fi
  28. if command -v goq &> /dev/null; then
  29. eval "$(goq completion zsh)"
  30. fi
  31. if command -v drop &> /dev/null; then
  32. eval "$(drop completion zsh)"
  33. fi
  34. if command -v mora &> /dev/null; then
  35. eval "$(mora completion zsh)"
  36. fi
  37. _kf_completion() {
  38. local -a contexts
  39. contexts=($(kubectx 2>/dev/null | sed 's/-read$//; s/-security$//' | sort -u))
  40. if [[ ${#contexts[@]} -gt 0 ]]; then
  41. _values 'cluster' "${contexts[@]}"
  42. fi
  43. }
  44. _rmq_passwd_completion() {
  45. local -a environments
  46. environments=($(kubectl config get-contexts -o name 2>/dev/null | grep '^oc-.*-eks-cluster$' | sed 's/^oc-//; s/-eks-cluster$//' | sort -u))
  47. if [[ ${#environments[@]} -gt 0 ]]; then
  48. _describe 'environments' environments
  49. fi
  50. }
  51. _yay_completion() {
  52. local cur prev opts
  53. COMPREPLY=()
  54. cur="${COMP_WORDS[COMP_CWORD]}"
  55. prev="${COMP_WORDS[COMP_CWORD-1]}"
  56. opts="-Syyu -Syu -Ss -S -R -Q -Si -Sc help install remove list clean"
  57. COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
  58. return 0
  59. }
  60. _yay_zsh_completion() {
  61. local -a opts
  62. opts=(
  63. '-Syyu:Update system'
  64. '-Syu:Update system'
  65. '-Ss:Search packages'
  66. '-S:Install system-wide'
  67. '-R:Remove package'
  68. '-Q:List installed'
  69. '-Si:Package info'
  70. '-Sc:Clean cache'
  71. '-p:Open nix-shell with packages'
  72. 'help:Show help'
  73. 'install:Install to user env'
  74. 'remove:Remove from user env'
  75. 'list:List installed packages'
  76. 'clean:Clean nix store'
  77. 'shell:Start nix-shell with packages'
  78. )
  79. _describe 'yay commands' opts
  80. }
  81. compdef _kf_completion kf
  82. compdef _rmq_passwd_completion rmq-passwd
  83. if [[ -n "${BASH_VERSION:-}" ]]; then
  84. complete -F _yay_completion yay
  85. elif [[ -n "${ZSH_VERSION:-}" ]]; then
  86. compdef _yay_zsh_completion yay
  87. fi