[PATCH] t0001: check syntax of sample hooks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Make sure that the sample hooks do not use any shell features
that the shell used to execute them does not support.

The documentation at the end of the sample pre-rebase script will
never be executed, but "sh -n" does not know that.  Convert it to
a HERE document to avoid spurious failures.

Signed-off-by: Jonathan Nieder <jrnieder@xxxxxxxxx>
---
I guess this serves as a test for 502be95 (Make templates honour
SHELL_PATH and PERL_PATH, 2010-03-20).

Actually, my motivation is the second part, since I already run a test
like this locally.  But I thought, while fixing it, why not make it
easy for others to suffer the same problem, too?

 t/t0001-init.sh                    |   15 +++++++++++++++
 templates/hooks--pre-rebase.sample |    3 +++
 2 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/t/t0001-init.sh b/t/t0001-init.sh
index 6757734..3e6e1ed 100755
--- a/t/t0001-init.sh
+++ b/t/t0001-init.sh
@@ -141,6 +141,21 @@ test_expect_success 'reinit' '
 	test_cmp again/empty again/err2
 '
 
+test_expect_success 'sample hooks use acceptable syntax' '
+	mkdir boring &&
+	git init boring &&
+	test -d boring/.git/hooks &&
+	fail=f &&
+	for i in boring/.git/hooks/*.sample
+	do
+		read shebang <"$i" &&
+		shell=${shebang#"#!"} &&
+		$shell -n "$i" ||
+		fail=t
+	done &&
+	test "$fail" = f
+'
+
 test_expect_success 'init with --template' '
 	mkdir template-source &&
 	echo content >template-source/file &&
diff --git a/templates/hooks--pre-rebase.sample b/templates/hooks--pre-rebase.sample
index 053f111..22a9f07 100755
--- a/templates/hooks--pre-rebase.sample
+++ b/templates/hooks--pre-rebase.sample
@@ -91,6 +91,7 @@ fi
 exit 0
 
 ################################################################
+cat <<\EOF
 
 This sample hook safeguards topic branches that have been
 published from being rewound.
@@ -167,3 +168,5 @@ To compute (2):
 	git rev-list master..topic
 
 	if this is empty, it is fully merged to "master".
+
+EOF
-- 
1.7.1.rc1

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]