diff options
Diffstat (limited to 'pre-commit.d/30store-metadata')
-rwxr-xr-x | pre-commit.d/30store-metadata | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/pre-commit.d/30store-metadata b/pre-commit.d/30store-metadata new file mode 100755 index 0000000..959e714 --- /dev/null +++ b/pre-commit.d/30store-metadata @@ -0,0 +1,25 @@ +#!/bin/sh +set -e + +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 + + # ensure the file exists so that it will list its own metadata + if [ ! -e .metadata ]; then + metastore --save + 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 + + if [ "$VCS" = git ]; then + git add .metadata + elif [ "$VCS" = hg ]; then + hg add .metadata + fi + fi +fi |