mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-06-18 15:15:18 +00:00
The autocompletion snippet has to be sourced from a shell, but running it in its own process doesn’t make sense. Signed-off-by: Nils Philippsen <nils@redhat.com> ## Checklist The [contributor guide](https://forgejo.org/docs/next/contributor/) contains information that will be helpful to first time contributors. There also are a few [conditions for merging Pull Requests in Forgejo repositories](https://codeberg.org/forgejo/governance/src/branch/main/PullRequestsAgreement.md). You are also welcome to join the [Forgejo development chatroom](https://matrix.to/#/#forgejo-development:matrix.org). ### Tests - I added test coverage for Go changes... - [ ] in their respective `*_test.go` for unit tests. - [ ] in the `tests/integration` directory if it involves interactions with a live Forgejo server. - I added test coverage for JavaScript changes... - [ ] in `web_src/js/*.test.js` if it can be unit tested. - [ ] in `tests/e2e/*.test.e2e.js` if it requires interactions with a live Forgejo server (see also the [developer guide for JavaScript testing](https://codeberg.org/forgejo/forgejo/src/branch/forgejo/tests/e2e/README.md#end-to-end-tests)). ### Documentation - [ ] I created a pull request [to the documentation](https://codeberg.org/forgejo/docs) to explain to Forgejo users how to use this change. - [x] I did not document these changes and I do not expect someone else to do it. ### Release notes - [x] I do not want this change to show in the release notes. - [ ] I want the title to show in the release notes with a link to this pull request. - [ ] I want the content of the `release-notes/<pull request number>.md` to be be used for the release notes instead of the title. Co-authored-by: Nils Philippsen <nils@redhat.com> Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8137 Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org> Co-authored-by: Nils Philippsen <nilsph@noreply.codeberg.org> Co-committed-by: Nils Philippsen <nilsph@noreply.codeberg.org>
29 lines
935 B
Bash
Executable file
29 lines
935 B
Bash
Executable file
# 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-shell-completion )
|
|
else
|
|
opts=$( ${COMP_WORDS[@]:0:$COMP_CWORD} --generate-shell-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
|
|
|
|
|
|
|