diff options
Diffstat (limited to 'pre-commit.d')
-rwxr-xr-x | pre-commit.d/10store-metadata | 16 | ||||
-rwxr-xr-x | pre-commit.d/10warn-empty-directory | 6 | ||||
-rwxr-xr-x | pre-commit.d/10warn-hardlinks | 7 | ||||
-rwxr-xr-x | pre-commit.d/10warn-special-file | 9 | ||||
-rw-r--r-- | pre-commit.d/README | 2 |
5 files changed, 40 insertions, 0 deletions
diff --git a/pre-commit.d/10store-metadata b/pre-commit.d/10store-metadata new file mode 100755 index 0000000..7958888 --- /dev/null +++ b/pre-commit.d/10store-metadata @@ -0,0 +1,16 @@ +#!/bin/sh +set -e + +# ensure the file exists so that it will list its own metadata +if [ ! -e .metadata ]; then + metastore --save + # the file could leak hidden dir contents.. + chmod 600 .metadata +fi + +# metastore doesn't produce the same output file for the same metadata +# everytime, so avoid changing the file if nothing really changed. +if [ ! -z "$(metastore --compare)" ]; then + metastore --save + git add .metadata +fi diff --git a/pre-commit.d/10warn-empty-directory b/pre-commit.d/10warn-empty-directory new file mode 100755 index 0000000..b850c86 --- /dev/null +++ b/pre-commit.d/10warn-empty-directory @@ -0,0 +1,6 @@ +#!/bin/sh +set -e +empty=$(find -type d -empty | grep -v /.git/) || true +if [ -n "$empty" ]; then + echo "etckeeper warning: there are some empty directories, which git will ignore" >&2 +fi diff --git a/pre-commit.d/10warn-hardlinks b/pre-commit.d/10warn-hardlinks new file mode 100755 index 0000000..3dd7a96 --- /dev/null +++ b/pre-commit.d/10warn-hardlinks @@ -0,0 +1,7 @@ +#!/bin/sh +set -e +hardlinks=$(find -type f -not -links 1 | grep -v /.git/) || true +if [ -n "$hardlinks" ]; then + echo "etckeeper warning: hardlinked files could cause problems with git:" >&2 + echo "$hardlinks" >&2 +fi diff --git a/pre-commit.d/10warn-special-file b/pre-commit.d/10warn-special-file new file mode 100755 index 0000000..cb4d019 --- /dev/null +++ b/pre-commit.d/10warn-special-file @@ -0,0 +1,9 @@ +#!/bin/sh +set -e +special=$(find -not -type d -not -type f -not -type l | grep -v /.git/) || true +if [ -n "$special" ]; then + echo "etckeeper warning: special files could cause problems with git:" >&2 + echo "$special" >&2 +fi + +true diff --git a/pre-commit.d/README b/pre-commit.d/README new file mode 100644 index 0000000..051d094 --- /dev/null +++ b/pre-commit.d/README @@ -0,0 +1,2 @@ +This is run by a git pre-commit hook before committing changes to the +repository. This can be used for storing metadata, and for sanity checks. |