diff options
Diffstat (limited to 'pre-commit.d/20store-empty-directory')
-rwxr-xr-x | pre-commit.d/20store-empty-directory | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/pre-commit.d/20store-empty-directory b/pre-commit.d/20store-empty-directory index e0f9538..0cab9df 100755 --- a/pre-commit.d/20store-empty-directory +++ b/pre-commit.d/20store-empty-directory @@ -1,19 +1,27 @@ #!/bin/sh set -e -# Make sure the file is not readable by others, since it can leak -# information about contents of non-readable directories in /etc. -umask 077 +# These version control systems do not track directories, so empty +# directories must be stored specially. +if [ "$VCS" = git ] || [ "$VCS" = hg ]; then + # Make sure the file is not readable by others, since it can leak + # information about contents of non-readable directories in /etc. + umask 077 -if [ -e .etckeeper ]; then - egrep -v '^mkdir ' .etckeeper > .etckeeper.new || true -fi -find -type d -empty | grep -v /.git/ | sort | - sed -e "s/^/mkdir -p '/" -e "s/\$/'/" >> .etckeeper.new + if [ -e .etckeeper ]; then + egrep -v '^mkdir ' .etckeeper > .etckeeper.new || true + fi + find -type d -empty | grep -v /.git/ | grep -v /.hg/ | sort | + sed -e "s/^/mkdir -p '/" -e "s/\$/'/" >> .etckeeper.new -if [ ! -e .etckeeper ] || ! cmp -s .etckeeper .etckeeper.new ; then - mv -f .etckeeper.new .etckeeper - git add .etckeeper -else - rm -f .etckeeper.new + if [ ! -e .etckeeper ] || ! cmp -s .etckeeper .etckeeper.new ; then + mv -f .etckeeper.new .etckeeper + if [ "$VCS" = git ]; then + git add .etckeeper + elif [ "$VCS" = hg ]; then + hg add .etckeeper + fi + else + rm -f .etckeeper.new + fi fi |