summaryrefslogtreecommitdiff
path: root/pre-commit.d/30store-metadata
blob: 86e974ca16bcafc5acb5b9357028e7e3b7758637 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/bin/sh
set -e

if [ "$VCS" = git ] || [ "$VCS" = hg ] || [ "$VCS" = bzr ]; 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

		# stage the file as part of the current commit
		if [ "$VCS" = git ]; then
			git add .metadata
		fi
		# hg and bzr add not done, they will automatically
		# include the file in the current commit
	fi
fi