summaryrefslogtreecommitdiff
path: root/pre-commit.d
diff options
context:
space:
mode:
Diffstat (limited to 'pre-commit.d')
-rwxr-xr-xpre-commit.d/10store-metadata16
-rwxr-xr-xpre-commit.d/10warn-empty-directory6
-rwxr-xr-xpre-commit.d/10warn-hardlinks7
-rwxr-xr-xpre-commit.d/10warn-special-file9
-rw-r--r--pre-commit.d/README2
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.