mirror of https://github.com/go-gitea/gitea
Add Bash and Zsh completion scripts (#22646)
This PR adds contrib scripts for bash and zsh completion. Simply call: ```bash source contrib/autocompletion/bash_autocomplete ``` or for Zsh: ```bash source contrib/autocompletion/zsh_autocomplete ``` Signed-off-by: Andrew Thornton <art27@cantab.net> --------- Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: a1012112796 <1012112796@qq.com> Co-authored-by: techknowlogick <techknowlogick@gitea.io>pull/23049/head
parent
4de5cd9f36
commit
43405c35f0
@ -0,0 +1,17 @@ |
|||||||
|
Bash and Zsh completion |
||||||
|
======================= |
||||||
|
|
||||||
|
From within the gitea root run: |
||||||
|
|
||||||
|
```bash |
||||||
|
source contrib/autocompletion/bash_autocomplete |
||||||
|
``` |
||||||
|
|
||||||
|
or for zsh run: |
||||||
|
|
||||||
|
```bash |
||||||
|
source contrib/autocompletion/zsh_autocomplete |
||||||
|
``` |
||||||
|
|
||||||
|
These scripts will check if gitea is on the path and if so add autocompletion for `gitea`. Or if not autocompletion will work for `./gitea`. |
||||||
|
If gitea has been installed as a different program pass in the `PROG` environment variable to set the correct program name. |
@ -0,0 +1,30 @@ |
|||||||
|
#! /bin/bash |
||||||
|
# Heavily inspired by https://github.com/urfave/cli |
||||||
|
|
||||||
|
_cli_bash_autocomplete() { |
||||||
|
if [[ "${COMP_WORDS[0]}" != "source" ]]; then |
||||||
|
local cur opts base |
||||||
|
COMPREPLY=() |
||||||
|
cur="${COMP_WORDS[COMP_CWORD]}" |
||||||
|
if [[ "$cur" == "-"* ]]; then |
||||||
|
opts=$( ${COMP_WORDS[@]:0:$COMP_CWORD} ${cur} --generate-bash-completion ) |
||||||
|
else |
||||||
|
opts=$( ${COMP_WORDS[@]:0:$COMP_CWORD} --generate-bash-completion ) |
||||||
|
fi |
||||||
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) |
||||||
|
return 0 |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
if [ -z "$PROG" ] && [ ! "$(command -v gitea &> /dev/null)" ] ; then |
||||||
|
complete -o bashdefault -o default -o nospace -F _cli_bash_autocomplete gitea |
||||||
|
elif [ -z "$PROG" ]; then |
||||||
|
complete -o bashdefault -o default -o nospace -F _cli_bash_autocomplete ./gitea |
||||||
|
complete -o bashdefault -o default -o nospace -F _cli_bash_autocomplete "$PWD/gitea" |
||||||
|
else |
||||||
|
complete -o bashdefault -o default -o nospace -F _cli_bash_autocomplete "$PROG" |
||||||
|
unset PROG |
||||||
|
fi |
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,30 @@ |
|||||||
|
#compdef ${PROG:=gitea} |
||||||
|
|
||||||
|
|
||||||
|
# Heavily inspired by https://github.com/urfave/cli |
||||||
|
|
||||||
|
_cli_zsh_autocomplete() { |
||||||
|
|
||||||
|
local -a opts |
||||||
|
local cur |
||||||
|
cur=${words[-1]} |
||||||
|
if [[ "$cur" == "-"* ]]; then |
||||||
|
opts=("${(@f)$(_CLI_ZSH_AUTOCOMPLETE_HACK=1 ${words[@]:0:#words[@]-1} ${cur} --generate-bash-completion)}") |
||||||
|
else |
||||||
|
opts=("${(@f)$(_CLI_ZSH_AUTOCOMPLETE_HACK=1 ${words[@]:0:#words[@]-1} --generate-bash-completion)}") |
||||||
|
fi |
||||||
|
|
||||||
|
if [[ "${opts[1]}" != "" ]]; then |
||||||
|
_describe 'values' opts |
||||||
|
else |
||||||
|
_files |
||||||
|
fi |
||||||
|
|
||||||
|
return |
||||||
|
} |
||||||
|
|
||||||
|
if [ -z $PROG ] ; then |
||||||
|
compdef _cli_zsh_autocomplete gitea |
||||||
|
else |
||||||
|
compdef _cli_zsh_autocomplete $(basename $PROG) |
||||||
|
fi |
Loading…
Reference in new issue