aboutsummaryrefslogtreecommitdiff
path: root/reproduce
diff options
context:
space:
mode:
authorMohammad Akhlaghi <mohammad@akhlaghi.org>2019-01-23 18:41:55 +0000
committerMohammad Akhlaghi <mohammad@akhlaghi.org>2019-01-23 18:57:00 +0000
commit0f97f15a8d183c6b14894f47c40968e92104181d (patch)
tree2f95bc4c23927f4a7c307be6d6b7170f9d421e02 /reproduce
parent8a0ebd90913231285e443df024b7d2958d0b8bc9 (diff)
Removing files ending with a ~ in the git checkout hook
While editing files, some editors create temporary `~' files that can cause problems in metastore's ability to delete their host directory if its not on the other branch. With this commit, a `find' call was added to the post checkout Git hook to remove such temporary files before metastore is called. Also, some comments were added to both git hooks to make them easier to understand for a beginner.
Diffstat (limited to 'reproduce')
-rw-r--r--reproduce/src/bash/git-post-checkout8
-rw-r--r--reproduce/src/bash/git-pre-commit6
-rw-r--r--reproduce/src/make/dependencies.mk7
3 files changed, 18 insertions, 3 deletions
diff --git a/reproduce/src/bash/git-post-checkout b/reproduce/src/bash/git-post-checkout
index 25dc2ac..e2a0fd0 100644
--- a/reproduce/src/bash/git-post-checkout
+++ b/reproduce/src/bash/git-post-checkout
@@ -9,8 +9,13 @@
# special characters for the installation location of meta-store so our own
# installation is found by Git.
+# File containig the metadata.
MSFILE=".file-metadata"
+# Delete all temporary files
+find @TOP_PROJECT_DIR@/ -name "*~" -type f -delete
+
+# Function to help in reporting a crash.
exit_on_fail() {
"$@"
if [ $? -ne 0 ]; then
@@ -19,12 +24,15 @@ exit_on_fail() {
fi
}
+# Check if the metadata file exists.
if [ ! -e "$MSFILE" ]; then
echo "\"$MSFILE\" missing" >&2
exit 1
fi
+# Run metastore.
exit_on_fail \
@BINDIR@/metastore -a -m -e -E -q -O @USER@ -G @GROUP@ -f "$MSFILE"
+# Return with a success code (0).
exit 0
diff --git a/reproduce/src/bash/git-pre-commit b/reproduce/src/bash/git-pre-commit
index dbf7dc6..ca28757 100644
--- a/reproduce/src/bash/git-pre-commit
+++ b/reproduce/src/bash/git-pre-commit
@@ -20,8 +20,10 @@
# git reset HEAD -- .metadata
# git checkout HEAD -- .metadata
+# File containig the metadata.
MSFILE=".file-metadata"
+# Function to help in reporting a crash.
exit_on_fail() {
"$@"
if [ $? -ne 0 ]; then
@@ -30,6 +32,7 @@ exit_on_fail() {
fi
}
+# Run metastore.
exit_on_fail \
@BINDIR@/metastore -O @USER@ -G @GROUP@ -s -f "$MSFILE"
@@ -39,12 +42,15 @@ if ! git-ls-tree --name-only HEAD 2>/dev/null | grep -Fqx "$MSFILE"; then
@BINDIR@/metastore -O @USER@ -G @GROUP@ -s -f "$MSFILE"
fi
+# Check if the metadata file exists.
if [ ! -e "$MSFILE" ]; then
echo "\"$MSFILE\" missing" >&2
exit 1
fi
+# Add the metadata file to the Git repository.
exit_on_fail \
git-add "$MSFILE"
+# Return with a success code (0).
exit 0
diff --git a/reproduce/src/make/dependencies.mk b/reproduce/src/make/dependencies.mk
index e9023b4..1cc2b00 100644
--- a/reproduce/src/make/dependencies.mk
+++ b/reproduce/src/make/dependencies.mk
@@ -384,9 +384,10 @@ $(ibdir)/metastore: $(tdir)/metastore-$(metastore-version).tar.gz \
cd $$current_dir
if [ -f $@ ]; then
for f in pre-commit post-checkout; do
- sed -e's|@USER[@]|'$$user'|g' \
- -e's|@GROUP[@]|'$$group'|g' \
- -e's|@BINDIR[@]|$(ibdir)|g' \
+ sed -e's|@USER[@]|'$$user'|g' \
+ -e's|@GROUP[@]|'$$group'|g' \
+ -e's|@BINDIR[@]|$(ibdir)|g' \
+ -e's|@TOP_PROJECT_DIR[@]|'$$current_dir'|g' \
reproduce/src/bash/git-$$f > .git/hooks/$$f
chmod +x .git/hooks/$$f
done