new VREF: MAX_NEWBIN_SIZE (manual spot testing only)
This commit is contained in:
parent
d74f596e23
commit
5d366b5c0e
40
src/VREF/MAX_NEWBIN_SIZE
Executable file
40
src/VREF/MAX_NEWBIN_SIZE
Executable file
|
@ -0,0 +1,40 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
|
||||||
|
# gitolite VREF to check max size of new binary files
|
||||||
|
|
||||||
|
# see gitolite docs for what the first 7 arguments mean
|
||||||
|
|
||||||
|
# inputs:
|
||||||
|
# arg-8 is a number
|
||||||
|
# outputs (STDOUT)
|
||||||
|
# arg-7 if any new binary files exist that are greater in size than arg-8
|
||||||
|
# *and* there is no "signed-off by" line for such a file in the top commit
|
||||||
|
# message.
|
||||||
|
#
|
||||||
|
# Otherwise nothing
|
||||||
|
# exit status:
|
||||||
|
# always 0
|
||||||
|
|
||||||
|
die "not meant to be run manually" unless $ARGV[7];
|
||||||
|
|
||||||
|
my ( $newsha, $oldtree, $newtree, $refex, $max ) = @ARGV[ 2, 3, 4, 6, 7 ];
|
||||||
|
|
||||||
|
# / (.*) +\| Bin 0 -> (\d+) bytes/
|
||||||
|
|
||||||
|
chomp( my $author_email = `git log --format=%ae -1 $newsha` );
|
||||||
|
my $msg = `git cat-file -p $newsha`;
|
||||||
|
$msg =~ s/\t/ /g; # makes our regexes simpler
|
||||||
|
|
||||||
|
for my $newbin (`git diff --stat=999,999 $oldtree $newtree | grep Bin.0.-`) {
|
||||||
|
next unless $newbin =~ /^ (.*) +\| +Bin 0 -> (\d+) bytes/;
|
||||||
|
my ( $f, $s ) = ( $1, $2 );
|
||||||
|
next if $s <= $max;
|
||||||
|
|
||||||
|
next if $msg =~ /^ *$f +signed-off by: *$author_email *$/mi;
|
||||||
|
|
||||||
|
print "$refex $f is larger than $max";
|
||||||
|
}
|
||||||
|
|
||||||
|
exit 0
|
Loading…
Reference in a new issue