diff options
| author | Federico Angelilli <code@fedang.net> | 2023-12-22 17:18:34 +0100 |
|---|---|---|
| committer | Federico Angelilli <code@fedang.net> | 2023-12-22 17:18:34 +0100 |
| commit | 1c39c97e8c416ba33aa3ae884354966609c84476 (patch) | |
| tree | bf91c9f93994359d02bd90c7681fa53c99e9205d /extra | |
| parent | 096deb6b1b038889f4bfb899a849e31d50272225 (diff) | |
Add GPLv3 license and INSTALL
Diffstat (limited to 'extra')
| -rwxr-xr-x | extra/crypt.bash | 53 | ||||
| -rwxr-xr-x | extra/crypt.zsh | 13 |
2 files changed, 66 insertions, 0 deletions
diff --git a/extra/crypt.bash b/extra/crypt.bash new file mode 100755 index 0000000..3074ff5 --- /dev/null +++ b/extra/crypt.bash @@ -0,0 +1,53 @@ +# Bash completion +# +# Copy to /usr/share/bash-completion/completions/crypt + +_crypt() { + COMPREPLY=() + + local location="${CRYPT_PATH:-$HOME/.crypt}" + location="${location%/}/" + local cur="${COMP_WORDS[COMP_CWORD]}" + + local IFS=$'\n' + local suffix=".gpg" + + local firstitem="" + local i=0 item + local items=($(compgen -f $location$cur)) + + for item in ${items[@]}; do + [[ $item =~ /\.[^/]*$ ]] && continue + + if [[ ${#items[@]} -eq 1 ]]; then + while [[ -d $item ]]; do + local subitems=($(compgen -f "$item/")) + local filtereditems=( ) item2 + for item2 in "${subitems[@]}"; do + [[ $item2 =~ /\.[^/]*$ ]] && continue + filtereditems+=( "$item2" ) + done + if [[ ${#filtereditems[@]} -eq 1 ]]; then + item="${filtereditems[0]}" + else + break + fi + done + fi + + [[ -d $item ]] && item="$item/" + + item="${item%$suffix}" + COMPREPLY+=("${item#$location}") + if [[ $i -eq 0 ]]; then + firstitem=$item + fi + let i+=1 + done + + if [[ $i -gt 1 || ( $i -eq 1 && -d $firstitem ) ]]; then + compopt -o nospace + fi +} + +complete -o filenames -F _crypt crypt diff --git a/extra/crypt.zsh b/extra/crypt.zsh new file mode 100755 index 0000000..2e1e57a --- /dev/null +++ b/extra/crypt.zsh @@ -0,0 +1,13 @@ +#compdef crypt +#autoload + +# copy to /usr/share/zsh/site-functions/_crypt + +_crypt() { + local IFS=$'\n' + local location + zstyle -s ":completion:${curcontext}:" location location || location="${CRYPT_PATH:-$HOME/.crypt}" + _values -C 'entries' ${$(crypt list --plain | sed -e "s#\([^[:space:]]*\)[[:space:]]*\(.*\)#\1\[\2\]#g" | sort):-""} +} + +_crypt |
