summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--contrib/pass.bash-completion21
1 files changed, 12 insertions, 9 deletions
diff --git a/contrib/pass.bash-completion b/contrib/pass.bash-completion
index a7d0f28..72f2abb 100644
--- a/contrib/pass.bash-completion
+++ b/contrib/pass.bash-completion
@@ -15,20 +15,23 @@ _pass_complete_entries () {
if [[ $item == $prefix.* ]]; then
continue
fi
- # append / to directories and recursively expand single-entry dir
- while [[ -d $item ]]; do
- item="$item/"
- if [[ ${#items[@]} -eq 1 && $autoexpand -eq 1 ]]; then
- local subitems=($(compgen -f $item))
+
+ # if there is a unique match, and it is a directory with one entry
+ # autocomplete the subentry as well (recursively)
+ if [[ ${#items[@]} -eq 1 && $autoexpand -eq 1 ]]; then
+ while [[ -d $item ]]; do
+ local subitems=($(compgen -f "$item/"))
if [[ ${#subitems[@]} -eq 1 ]]; then
item="${subitems[0]}"
else
break
fi
- else
- break
- fi
- done
+ done
+ fi
+
+ # append / to directories
+ [[ -d $item ]] && item="$item/"
+
item="${item%$suffix}"
COMPREPLY+=("${item#$prefix}")
done
=1'>Move examples into manpage.Jason A. Donenfeld4-93/+224 2012-09-03Make into a real project.Jason A. Donenfeld8-5/+173 2012-09-03Support pass gitJason A. Donenfeld2-1/+15 2012-08-31Add remove synonyms.Jason A. Donenfeld1-2/+2 2012-08-31Use basename in usage.Jason A. Donenfeld1-2/+1 2012-08-19now using gpg_id as a varMatthew Ramirez1-2/+2 2012-08-07Forty five seconds.Jason A. Donenfeld1-1/+1 2012-08-06Deal with klipper and new lines.Jason A. Donenfeld1-3/+19 2012-08-06Update examples.Jason A. Donenfeld1-7/+7 2012-08-06Update readme.Jason A. Donenfeld1-11/+13 2012-08-06Be slicker and more like git.Jason A. Donenfeld1-114/+173