home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / share / doc / bash / completion-contrib / mcrypt < prev    next >
Encoding:
Text File  |  2006-08-28  |  1.9 KB  |  80 lines

  1. # mcrypt(1) completion by Ariel Fermani <the_end@bbs.frc.utn.edu.ar>
  2. #
  3. # $Id: mcrypt,v 1.2 2003/12/31 08:22:37 ianmacd Exp $
  4.  
  5. _mcrypt()
  6. {
  7.     local cur prev i decrypt
  8.  
  9.     COMPREPLY=()
  10.     cur=${COMP_WORDS[COMP_CWORD]}
  11.     prev=${COMP_WORDS[COMP_CWORD-1]}
  12.  
  13.     case "$prev" in
  14.         -@(g|-openpgp-z))
  15.             COMPREPLY=( $( compgen -W '0 1 2 3 4 5 6 7 8 9' \
  16.                 -- $cur ) )
  17.             return 0
  18.             ;;
  19.         -@(o|-keymode))
  20.             COMPREPLY=( $( mcrypt --list-keymodes 2> /dev/null |
  21.                 grep "^$cur" ) )
  22.             return 0
  23.             ;;
  24.         -@(m|-mode))
  25.             COMPREPLY=( $( mcrypt --list 2> /dev/null |
  26.                 sed -e 's/.*: //' -e 's/ $//' | sort |
  27.                 uniq | tr " " "\n" | grep "^$cur" ) )
  28.             return 0
  29.             ;;
  30.         -@(a|-algorithm))
  31.             COMPREPLY=( $( mcrypt --list 2> /dev/null |
  32.                 awk '{print $1}' | grep "^$cur" ) )
  33.             return 0
  34.             ;;
  35.         -@(h|-hash))
  36.             COMPREPLY=( $( mcrypt --list-hash 2> /dev/null |
  37.                 sed 1d | grep "^$cur" ) )
  38.             return 0
  39.             ;;
  40.         -@(k|s|-@(key?(size))))
  41.             return 0
  42.             ;;
  43.         -@(f|c|-@(keyfile|config)))
  44.             _filedir
  45.             return 0
  46.             ;;
  47.         --@(algorithm|mode)s-directory)
  48.             _filedir -d
  49.             return 0
  50.             ;;
  51.     esac
  52.  
  53.     if [[ "$cur" == -* ]]; then
  54.         COMPREPLY=( $( compgen -W '-g --openpgp --openpgp-z -d \
  55.             --decrypt -s --keysize -o --keymode -f --keyfile \
  56.             -c --config -a --algorithm --algorithms-directory \
  57.             -m --mode --modes-directory -h --hash -k --key \
  58.             --noiv -b --bare -z --gzip -p --bzip2 --flush -l \
  59.             --doublecheck -u --unlink --nodelete -t --time -F \
  60.             --force --echo -r --random --list --list-keymodes \
  61.             --list-hash -V --verbose -q --quiet --help -v \
  62.             --version -L --license' -- $cur ) )
  63.     elif [[ ${COMP_WORDS[0]} == mdecrypt ]]; then
  64.         _filedir '@(nc)'
  65.     else
  66.         decrypt=0
  67.         for (( i=1; i < ${#COMP_WORDS[@]}-1; i++ )); do
  68.             if [[ ${COMP_WORDS[i]} == -@(d|-decrypt) ]]; then
  69.                 _filedir '@(nc)'
  70.                 decrypt=1
  71.                 break
  72.             fi
  73.         done
  74.         if [[ $decrypt -eq 0 ]]; then
  75.             _filedir
  76.         fi
  77.     fi
  78. }
  79. complete -o filenames -F _mcrypt mcrypt mdecrypt
  80.