tarsnap-recrypt 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. # bash-completion for tarsnap-recrypt
  2. #
  3. # Copyright (c) 2009-2012 Andreas Olsson
  4. #
  5. # Permission is hereby granted, free of charge, to any person
  6. # obtaining a copy of this software and associated documentation
  7. # files (the "Software"), to deal in the Software without
  8. # restriction, including without limitation the rights to use,
  9. # copy, modify, merge, publish, distribute, sublicense, and/or sell
  10. # copies of the Software, and to permit persons to whom the
  11. # Software is furnished to do so, subject to the following
  12. # conditions:
  13. #
  14. # The above copyright notice and this permission notice shall be
  15. # included in all copies or substantial portions of the Software.
  16. #
  17. # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  18. # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  19. # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  20. # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  21. # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  22. # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  23. # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  24. # OTHER DEALINGS IN THE SOFTWARE.
  25. shopt -s extglob
  26. _tarsnap_recrypt ()
  27. {
  28. local cur prev wfilearg wpatharg longopts
  29. COMPREPLAY=()
  30. cur="${COMP_WORDS[COMP_CWORD]}"
  31. prev="${COMP_WORDS[COMP_CWORD-1]}"
  32. # These options will be completed by the path to a filename.
  33. wfilearg="--oldkey|--newkey"
  34. # These options will be completed by the path to a directory.
  35. wpatharg="--oldcachedir|--newcachedir"
  36. longopts="--oldkey --newkey --oldcachedir --newcachedir --version"
  37. case "$prev" in
  38. @($wfilearg))
  39. _filedir
  40. return 0
  41. ;;
  42. @($wpatharg))
  43. _filedir -d
  44. return 0
  45. ;;
  46. esac
  47. if [[ ${cur} == -* ]]
  48. then
  49. COMPREPLY=( $(compgen -W "${longopts}" -- ${cur}) )
  50. return 0
  51. fi
  52. }
  53. complete -F _tarsnap_recrypt -o filenames tarsnap-recrypt