/etckeeper/init.d/50vcs-pre-commit-hook

http://github.com/brinkman83/bashrc · Shell · 49 lines · 44 code · 1 blank · 4 comment · 7 complexity · 16828750de6a26c18b1bee791d85e4d5 MD5 · raw file

  1. #!/bin/sh
  2. set -e
  3. case "$VCS" in
  4. git)
  5. if [ -x .git/hooks/pre-commit ]; then
  6. if ! grep -q "etckeeper pre-commit" .git/hooks/pre-commit; then
  7. echo "etckeeper warning: .git/hooks/pre-commit needs to be manually modified to run: etckeeper pre-commit -d `pwd`" >&2
  8. fi
  9. else
  10. cat >.git/hooks/pre-commit <<EOF
  11. #!/bin/sh
  12. # pre-commit hook for etckeeper, to store metadata and do sanity checks
  13. set -e
  14. etckeeper pre-commit -d `pwd`
  15. EOF
  16. chmod +x .git/hooks/pre-commit
  17. fi
  18. ;;
  19. hg)
  20. if [ -e .hg/hgrc ] && grep "^\[hooks\]" .hg/hgrc; then
  21. if ! grep -q "etckeeper pre-commit" .hg/hgrc; then
  22. echo "etckeeper warning: [hooks] section in .hg/hgrc needs to be manually modified to run: etckeeper pre-commit -d `pwd`" >&2
  23. fi
  24. else
  25. touch .hg/hgrc
  26. cat >>.hg/hgrc <<EOF
  27. [hooks]
  28. # pre-commit hook for etckeeper, to store metadata and do sanity checks
  29. precommit = etckeeper pre-commit -d `pwd`
  30. EOF
  31. fi
  32. ;;
  33. darcs)
  34. if [ -e _darcs/prefs/defaults ]; then
  35. if ! ( grep -q "record prehook etckeeper pre-commit" _darcs/prefs/defaults &&
  36. grep -q "whatsnew prehook etckeeper pre-commit" _darcs/prefs/defaults ); then
  37. echo "etckeeper warning: _darcs/prefs/defaults needs to be manually modified to run: etckeeper pre-commit -d `pwd`" >&2
  38. fi
  39. else
  40. cat >_darcs/prefs/defaults <<EOF
  41. record prehook etckeeper pre-commit -d `pwd`
  42. record run-prehook
  43. whatsnew prehook etckeeper pre-commit -d `pwd`
  44. whatsnew run-prehook
  45. EOF
  46. fi
  47. ;;
  48. esac