# mcrypt(1) completion -*- shell-script -*- # by Ariel Fermani _mcrypt() { local cur prev words cword _init_completion || return case $prev in -g | --openpgp-z) COMPREPLY=($(compgen -W '{0..9}' -- "$cur")) return ;; -o | --keymode) COMPREPLY=($(compgen -W '$($1 --list-keymodes 2>/dev/null )' \ -- "$cur")) return ;; -m | --mode) COMPREPLY=($(compgen -W "$($1 --list 2>/dev/null | cut -d: -f2-)" \ -- "$cur")) return ;; -a | --algorithm) COMPREPLY=($(compgen -W "$($1 --list 2>/dev/null | awk '{print $1}')" -- "$cur")) return ;; -h | --hash) COMPREPLY=($(compgen -W '$($1 --list-hash 2>/dev/null | \ command sed -e 1d)' -- "$cur")) return ;; -k | -s | --key | --keysize) return ;; -f | -c | --keyfile | --config) _filedir return ;; --algorithms-directory | --modes-directory) _filedir -d return ;; esac if [[ $cur == -* ]]; then COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) elif [[ ${words[0]} == mdecrypt ]]; then _filedir nc else local i decrypt=0 for ((i = 1; i < ${#words[@]} - 1; i++)); do if [[ ${words[i]} == -@(d|-decrypt) ]]; then _filedir nc decrypt=1 break fi done if ((decrypt == 0)); then _filedir fi fi } && complete -F _mcrypt mcrypt mdecrypt # ex: filetype=sh