Clean up vault completion and add to clean_files.txt
parent
6eb5802080
commit
334005ead3
|
|
@ -35,6 +35,7 @@ completion/available/knife.completion.bash
|
||||||
completion/available/packer.completion.bash
|
completion/available/packer.completion.bash
|
||||||
completion/available/pipx.completion.bash
|
completion/available/pipx.completion.bash
|
||||||
completion/available/rustup.completion.bash
|
completion/available/rustup.completion.bash
|
||||||
|
completion/available/vault.completion.bash
|
||||||
|
|
||||||
# aliases
|
# aliases
|
||||||
aliases/available/vim.aliases.bash
|
aliases/available/vim.aliases.bash
|
||||||
|
|
|
||||||
|
|
@ -1,51 +1,7 @@
|
||||||
# ---------------------------------------------------------------------------
|
#!/usr/bin/env bash
|
||||||
# vault-bash-completion
|
cite "about-completion"
|
||||||
#
|
about-completion "vault completion"
|
||||||
# This adds bash completions for [HashiCorp Vault](https://www.vaultproject.io/)
|
|
||||||
#
|
|
||||||
# see https://github.com/iljaweis/vault-bash-completion
|
|
||||||
# ---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
function _vault_mounts() {
|
if _binary_exists vault; then
|
||||||
(
|
complete -C vault vault
|
||||||
set -euo pipefail
|
fi
|
||||||
if ! vault mounts 2> /dev/null | awk 'NR > 1 {print $1}'; then
|
|
||||||
echo "secret"
|
|
||||||
fi
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
function _vault() {
|
|
||||||
local VAULT_COMMANDS=$(vault 2>&1 | egrep '^ +' | awk '{print $1}')
|
|
||||||
|
|
||||||
local cur
|
|
||||||
local prev
|
|
||||||
|
|
||||||
if [ $COMP_CWORD -gt 0 ]; then
|
|
||||||
cur=${COMP_WORDS[COMP_CWORD]}
|
|
||||||
prev=${COMP_WORDS[COMP_CWORD-1]}
|
|
||||||
fi
|
|
||||||
|
|
||||||
local line=${COMP_LINE}
|
|
||||||
|
|
||||||
if [[ $prev =~ ^(policies|policy-write|policy-delete) ]]; then
|
|
||||||
local policies=$(vault policies 2> /dev/null)
|
|
||||||
COMPREPLY=($(compgen -W "$policies" -- $cur))
|
|
||||||
elif [ "$(echo $line | wc -w)" -le 2 ]; then
|
|
||||||
if [[ "$line" =~ ^vault\ (read|write|delete|list)\ $ ]]; then
|
|
||||||
COMPREPLY=($(compgen -W "$(_vault_mounts)" -- ''))
|
|
||||||
else
|
|
||||||
COMPREPLY=($(compgen -W "$VAULT_COMMANDS" -- $cur))
|
|
||||||
fi
|
|
||||||
elif [[ "$line" =~ ^vault\ (read|write|delete|list)\ (.*)$ ]]; then
|
|
||||||
path=${BASH_REMATCH[2]}
|
|
||||||
if [[ "$path" =~ ^([^ ]+)/([^ /]*)$ ]]; then
|
|
||||||
list=$(vault list -format=yaml ${BASH_REMATCH[1]} 2> /dev/null | awk '{ print $2 }')
|
|
||||||
COMPREPLY=($(compgen -W "$list" -P "${BASH_REMATCH[1]}/" -- ${BASH_REMATCH[2]}))
|
|
||||||
else
|
|
||||||
COMPREPLY=($(compgen -W "$(_vault_mounts)" -- $path))
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
complete -o default -o nospace -F _vault vault
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue