Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 17 additions & 17 deletions src/completion/pass.bash-completion
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# Brian Mattern <rephorm@rephorm.com>. All Rights Reserved.
# This file is licensed under the GPLv2+. Please see COPYING for more information.

_pass_complete_entries () {
_passage_complete_entries () {
local prefix="${PASSAGE_DIR:-$HOME/.passage/store/}"
prefix="${prefix%/}/"
local suffix=".age"
Expand Down Expand Up @@ -58,7 +58,7 @@ _pass_complete_entries () {
fi
}

_pass_complete_folders () {
_passage_complete_folders () {
local prefix="${PASSAGE_DIR:-$HOME/.passage/store/}"
prefix="${prefix%/}/"

Expand All @@ -70,56 +70,56 @@ _pass_complete_folders () {
done
}

_pass()
_passage()
{
COMPREPLY=()
local cur="${COMP_WORDS[COMP_CWORD]}"
local commands="init ls find grep show insert generate edit rm mv cp git help version ${PASSWORD_STORE_EXTENSION_COMMANDS[*]}"
local commands="init ls find grep show insert generate edit rm mv cp git help version ${PASSAGE_EXTENSION_COMMANDS[*]}"
if [[ $COMP_CWORD -gt 1 ]]; then
local lastarg="${COMP_WORDS[$COMP_CWORD-1]}"
case "${COMP_WORDS[1]}" in
ls|list|edit)
_pass_complete_entries
_passage_complete_entries
;;
show|-*)
COMPREPLY+=($(compgen -W "-c --clip" -- ${cur}))
_pass_complete_entries 1
_passage_complete_entries 1
;;
insert)
COMPREPLY+=($(compgen -W "-e --echo -m --multiline -f --force" -- ${cur}))
_pass_complete_entries
_passage_complete_entries
;;
generate)
COMPREPLY+=($(compgen -W "-n --no-symbols -c --clip -f --force -i --in-place" -- ${cur}))
_pass_complete_entries
_passage_complete_entries
;;
cp|copy|mv|rename)
COMPREPLY+=($(compgen -W "-f --force" -- ${cur}))
_pass_complete_entries
_passage_complete_entries
;;
rm|remove|delete)
COMPREPLY+=($(compgen -W "-r --recursive -f --force" -- ${cur}))
_pass_complete_entries
_passage_complete_entries
;;
git)
COMPREPLY+=($(compgen -W "init push pull config log reflog rebase" -- ${cur}))
;;
esac

# To add completion for an extension command define a function like this:
# __password_store_extension_complete_<COMMAND>() {
# __passage_extension_complete_<COMMAND>() {
# COMPREPLY+=($(compgen -W "-o --option" -- ${cur}))
# _pass_complete_entries 1
# _passage_complete_entries 1
# }
#
# and add the command to the $PASSWORD_STORE_EXTENSION_COMMANDS array
if [[ " ${PASSWORD_STORE_EXTENSION_COMMANDS[*]} " == *" ${COMP_WORDS[1]} "* ]] && type "__password_store_extension_complete_${COMP_WORDS[1]}" &> /dev/null; then
"__password_store_extension_complete_${COMP_WORDS[1]}"
# and add the command to the $PASSAGE_EXTENSION_COMMANDS array
if [[ " ${PASSAGE_EXTENSION_COMMANDS[*]} " == *" ${COMP_WORDS[1]} "* ]] && type "__passage_extension_complete_${COMP_WORDS[1]}" &> /dev/null; then
"__passage_extension_complete_${COMP_WORDS[1]}"
fi
else
COMPREPLY+=($(compgen -W "${commands}" -- ${cur}))
_pass_complete_entries 1
_passage_complete_entries 1
fi
}

complete -o filenames -F _pass passage
complete -o filenames -F _passage passage