diff options
Diffstat (limited to '.local/share/pass-extensions/names.bash')
-rwxr-xr-x | .local/share/pass-extensions/names.bash | 47 |
1 files changed, 38 insertions, 9 deletions
diff --git a/.local/share/pass-extensions/names.bash b/.local/share/pass-extensions/names.bash index e96548f..aa42ebf 100755 --- a/.local/share/pass-extensions/names.bash +++ b/.local/share/pass-extensions/names.bash @@ -5,13 +5,42 @@ pass_dir="$(pass directory)" [ $? -ne 0 ] && exit 1 cd "$pass_dir" -# List all files in password store (ignoring .git and .extensions folders) and -# trim './' prefix and '.gpg' suffix -find -L . \ - -type d -name '.git' -prune \ - -o -type d -name '.extensions' -prune \ - -o -name '*.gpg' \ - -type f \ - -print |\ -cut -c3- | rev | cut -c5- | rev +usage() { + cat << EOF +usage: + pass names [-hl] + +options: + -l ignore symbolic links in password store + -h show this help +EOF + exit $1 +} + +ARGC=0 +while getopts lh OPT; do + [ $OPTIND -gt $ARGC ] && ARGC=$OPTIND + case $OPT in + l) + opt_ignore_symlinks=y + ;; + h) usage 0 ;; + \?|*) usage 1 ;; + esac +done + +find_args=() + +if [ -n "$opt_ignore_symlinks" ] ; then + find_args+=(-P) # ignore symbolic links +else + find_args+=(-L) # follow symbolic links +fi +find_args+=(.) +find_args+=(-type d -name .git -prune) # skip .git directory +find_args+=(-o -type d -name .extensions -prune) # skip .extensions directory +find_args+=(-o -type f -name '*.gpg') # only .gpg files +find_args+=(-print) + +find "${find_args[@]}" | cut -c3- | rev | cut -c5- | rev |