summaryrefslogtreecommitdiffstats
path: root/src/build/tools/pre-receive
diff options
context:
space:
mode:
Diffstat (limited to 'src/build/tools/pre-receive')
-rwxr-xr-xsrc/build/tools/pre-receive89
1 files changed, 89 insertions, 0 deletions
diff --git a/src/build/tools/pre-receive b/src/build/tools/pre-receive
new file mode 100755
index 000000000..60b07d4ed
--- /dev/null
+++ b/src/build/tools/pre-receive
@@ -0,0 +1,89 @@
+#!/usr/bin/perl
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: src/build/tools/pre-receive $
+#
+# IBM CONFIDENTIAL
+#
+# COPYRIGHT International Business Machines Corp. 2011
+#
+# p1
+#
+# Object Code Only (OCO) source materials
+# Licensed Internal Code Source Materials
+# IBM HostBoot Licensed Internal Code
+#
+# The source code for this program is not published or other-
+# wise divested of its trade secrets, irrespective of what has
+# been deposited with the U.S. Copyright Office.
+#
+# Origin: 30
+#
+# IBM_PROLOG_END
+
+#
+# From "git help githooks" :
+# "This hook executes once for the receive operation. It takes no arguments,
+# but for each ref to be updated it receives on standard input a line of
+# the format:
+#
+# <old-value> SP <new-value> SP <ref-name> LF
+#
+# where <old-value> is the old object name stored in the ref,
+# <new-value> is the new object name to be stored in the ref,
+# and <ref-name> is the full name of the ref.
+# When creating a new ref, <old-value> is 40 0."
+#
+
+$COPYRIGHT_SCRIPT=".git/hooks/addCopyright.pl";
+
+print "Processing pre-receive script\n";
+
+while (<STDIN>)
+{
+ my $refsLine = $_;
+ if ($refsLine =~ /([0-9a-f]*) ([0-9a-f]*) (.*)/)
+ {
+ my ($oldRef, $newRef, $refName) = ($1, $2, $3);
+ print "$oldRef, $newRef, $refName\n";
+
+ my @diffTreeList = split('\n', `git diff-tree -r --diff-filter=AM $newRef $oldRef`);
+ foreach my $diffTreeLine (@diffTreeList)
+ {
+ #print "$diffTreeLine\n";
+ if ($diffTreeLine =~ m/^:\d*\s*\d*\s*(\S*)\s*(\S*)\s*(\S*)\s*(\S*)/)
+ {
+ my ($diffNewRef, $diffOldRef, $type, $name) = ($1, $2, $3, $4);
+ my $namePart = $name;
+ if ($name =~ m/\/([^\/]*)$/)
+ {
+ $namePart = $1;
+ }
+
+ if ($diffNewRef != 0)
+ {
+ my $tmpName = "/tmp/git_$<_$diffNewRef"."_$namePart";
+
+ system("git show $diffNewRef > $tmpName");
+ if ($? != 0)
+ {
+ print "Unable to git show $diffNewRef on file $name type $type\n";
+ exit 1;
+ }
+ # system("/gsa/rchgsa/projects/p/powerhal/tools/addCopyright.pl validate $tmpName");
+ system( "$COPYRIGHT_SCRIPT validate $tmpname" );
+ if ($? != 0)
+ {
+ print "File $name does not have a correct prolog\n";
+ system("rm -f $tmpName");
+ exit 1;
+ }
+ system("rm -f $tmpName");
+ }
+ }
+ }
+ }
+}
+
+exit 0;
OpenPOWER on IntegriCloud