mirror of
https://github.com/rwinkhart/sshyp.git
synced 2026-08-28 04:46:34 -04:00
Former-commit-id: 1167f06b14ce50baa0c96e67a835247c6579aaa9 Former-commit-id: ea6be360d50c16579253d1e2d0b1825c5a1f1a4a
42 lines
1.5 KiB
Bash
Executable File
42 lines
1.5 KiB
Bash
Executable File
# sshyp(1) completion
|
|
|
|
_path_gen() {
|
|
local sshyp_path="$HOME/.local/share/sshyp"
|
|
local glob_status=$(shopt -p globstar)
|
|
[ -z "${glob_status##*u*}" ] && shopt -s globstar # if recursive globbing is disabled, enable it
|
|
local full_paths=("$sshyp_path"/**/*.gpg)
|
|
$glob_status # set recursive globbing to user default
|
|
for path in "${full_paths[@]}"; do
|
|
trimmed_paths+=("${path:${#sshyp_path}:-4}")
|
|
done
|
|
if [ "${trimmed_paths[0]}" == '/**/*' ]; then trimmed_paths[0]=help; fi
|
|
} &&
|
|
|
|
_sshyp_completions() {
|
|
local cur=${COMP_WORDS[COMP_CWORD]}
|
|
local prev=${COMP_WORDS[COMP_CWORD-1]}
|
|
|
|
case $prev in
|
|
sshyp )
|
|
while read -r; do ITEM=${REPLY// /\\ }; COMPREPLY+=( "$ITEM" ); done < <( compgen -W "$(printf "'%s' " "${trimmed_paths[@]}")" -- "$cur" )
|
|
;;
|
|
/* )
|
|
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "add gen edit copy shear" -- "$cur" )
|
|
;;
|
|
add )
|
|
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "password note folder" -- "$cur" )
|
|
;;
|
|
copy )
|
|
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "password username url note" -- "$cur" )
|
|
;;
|
|
edit )
|
|
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "password username url note relocate" -- "$cur" )
|
|
;;
|
|
gen )
|
|
while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "update" -- "$cur" )
|
|
;;
|
|
esac
|
|
|
|
} &&
|
|
_path_gen && complete -F _sshyp_completions sshyp
|