openapi-generator/scripts/openapi-generator-cli-completion.bash
Jim Schubert c6004a8f89 Adds a simple bash completion script (#277)
* Adds a simple bash completion script

This works with any loading script named openapi-generator-cli.
That is, if you've installed via homebrew or created a script similar
to https://gist.github.com/jimschubert/ce241b0c78140e364f46914ef8ec4103

This script is relatively simple, relying on fallback to the recently
add "completion" command to the CLI project.

The script includes a possible extension to allow for per-language
options to autocomplete when the user is applying additional properties.
This work is currently commented out, as it may be simplified a bit in
the CLI first.

* Add launcher script and "install" instructions
2018-07-25 19:12:41 +08:00

47 lines
1.4 KiB
Bash

#!/usr/bin/env bash
###
# Provides completion assistance for openapi-generator-cli
# Install
# Mac:
# brew install bash-completion
# cp openapi-generator-cli-completion.bash `brew --prefix`/etc/bash_completion.d
# Linux: many distributions include this automatically. Search for your distro-specific instructions.
# When in doubt, try sourcing this file:
# type complete && source openapi-generator-cli
#
# see http://tldp.org/LDP/abs/html/tabexpansion.html
###
_openapi_generator_cli_completions() {
COMPREPLY=()
local IFS=$' \t\n'
local options=()
options+=("$($1 completion ${COMP_WORDS[@]:1})")
case "${COMP_WORDS[1]}" in
generate)
case "${COMP_WORDS[@]:2}" in
-l|--lang|-g|--generator-name)
# TODO: This is a nice-to-have and not required.
# Apply generator-specific options to additional properties. These can be queried via:
# openapi-generator-cli config-help -l YOUR_LANG | grep '^\t' | grep -v '^\t\s\s\s\s' | tr -d '\t'
# where YOUR_LANG would need to be evaluated as the value after the current switch.
# but rather than switching on 'generate' maybe switch on --additional-properties?
;;
esac
;;
*)
# ignore
;;
esac
# printf '%s\n' "${options[@]}"
if [[ -n "${options[@]}" ]]; then
COMPREPLY=( $(compgen -W "${options}" -- ${2}) )
fi
}
complete -F _openapi_generator_cli_completions openapi-generator-cli