Introduce git-push hook (#1184)
author김정현/동작제어Lab(SR)/Senior Engineer/삼성전자 <jh0822.kim@samsung.com>
Mon, 14 May 2018 03:52:13 +0000 (12:52 +0900)
committer서상민/동작제어Lab(SR)/Senior Engineer/삼성전자 <sangmin7.seo@samsung.com>
Mon, 14 May 2018 03:52:13 +0000 (12:52 +0900)
This commit introduces git-push hook and its installer.
Originally created by @wateret.

Signed-off-by: Junghyun Kim <jh0822.kim@samsung.com>
scripts/git-hooks/install_hooks.sh [new file with mode: 0755]
scripts/git-hooks/pre-push [new file with mode: 0755]

diff --git a/scripts/git-hooks/install_hooks.sh b/scripts/git-hooks/install_hooks.sh
new file mode 100755 (executable)
index 0000000..9ab7342
--- /dev/null
@@ -0,0 +1,11 @@
+#!/usr/bin/env bash
+
+REPO_PATH=$(git rev-parse --show-toplevel)
+REPO_HOOKS_PATH=scripts/git-hooks
+GIT_HOOKS_PATH=$REPO_PATH/.git/hooks
+REPO_PATH_REL=../.. # Relative path from REPO_HOOKS_PATH
+
+# Create symbolic links to hooks dir
+
+# NOTE `ln -s` does not overwrite if the file exists.
+ln -s $REPO_PATH_REL/$REPO_HOOKS_PATH/pre-push $GIT_HOOKS_PATH/pre-push
diff --git a/scripts/git-hooks/pre-push b/scripts/git-hooks/pre-push
new file mode 100755 (executable)
index 0000000..adad9bd
--- /dev/null
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+# An example hook script to verify what is about to be pushed.  Called by "git
+# push" after it has checked the remote status, but before anything has been
+# pushed.  If this script exits with a non-zero status nothing will be pushed.
+#
+# This hook is called with the following parameters:
+#
+# $1 -- Name of the remote to which the push is being done
+# $2 -- URL to which the push is being done
+#
+# If pushing without using a named remote those arguments will be equal.
+#
+# Information about the commits which are being pushed is supplied as lines to
+# the standard input in the form:
+#
+#   <local ref> <local sha1> <remote ref> <remote sha1>
+#
+# This sample shows how to prevent push of commits where the log message starts
+# with "WIP" (work in progress).
+
+remote="$1"
+url="$2"
+
+# RUN FORMAT CHECKER
+
+REPO_PATH=$(git rev-parse --show-toplevel)
+cd $REPO_PATH
+
+./run format-checker.sh
+
+exit $?