Bug 20538: Remove obsolete check for bug 12904
[qa-test-tools.git] / qa-tools / git / pre-commit
1 #!/usr/bin/perl
2
3 # Put me in your .git/hooks
4
5 use Modern::Perl;
6 use File::Basename;
7 $ENV{LOG} = "test";
8
9 my $nb_errors = 0;
10 for my $filepath (`git diff --cached --name-only`) {
11     chomp $filepath;
12     next if not -f $filepath;
13     open my $fh, "<" . $filepath;
14
15     my @file_infos = fileparse( $filepath, qr/\.[^.]*/ );
16     given ( $file_infos[2] ) {
17         when ( /^.pl|^.pm$/ ) {
18             system ( qq{/usr/bin/perl -wc $filepath} ) == 0 or say "\n" and $nb_errors++;
19         }
20         when ( /^.tt$/ ) {
21             #TODO
22         }
23         when ( /^.js$/ ) {
24             #TODO
25         }
26     }
27 }
28
29 my $filepath;
30 for my $l ( split '\n', `git diff-index -p -M --cached HEAD` ) {
31     if ( $l =~ /^diff --git a\/([^ ]*) .*$/ ) {
32         $filepath = $1;
33     }
34     given ( $l ) {
35         when ( /console.log/ ) {
36             say "$filepath contains console.log ($l)";
37             $nb_errors++;
38         }
39         when ( /^\+ *warn Data::Dumper::Dumper / ) {
40             say "$filepath contains warn Data::Dumper::Dumper ($l)";
41             $nb_errors++;
42         }
43         # This one could be uncommented when Koha will have the Logger module
44         #when ( /^\+ *warn / ) {
45         #    say "$filepath contains warn ($l)";
46         #    $nb_errors++;
47         #}
48         when ( m/^<<<<<<</ or m/^>>>>>>>/ or m/^=======/ ) {
49             say "$filepath contains $& ($l)";
50         }
51         when ( /(\+|-)\s*use/ ) {
52             say "Patch add or remove a use in $filepath: $l";
53             say "You should run xt/find-undefined-subroutines.pl to check if nothing is broken";
54             $nb_errors++;
55         }
56     }
57 }
58
59 if ( $nb_errors ) {
60     say "\nAre you sure you want to commit ?";
61     say "You can commit with the --no-verify argument";
62     exit 1;
63 }
64 exit 0;