X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/a769a5017518b850dca541f3e873fcfbc772f782..221f7d1e232ed26b674325adcfd3e30e3e2cf857:/test/patchexim diff --git a/test/patchexim b/test/patchexim index 91bf98a42..a006022e0 100755 --- a/test/patchexim +++ b/test/patchexim @@ -1,4 +1,8 @@ -#! /usr/bin/perl -w +#! /usr/bin/env perl + +use strict; +use warnings; +use Getopt::Std; ############################################################################### # This is an auxiliary script that is part of the Exim test suite. It must be # @@ -8,21 +12,39 @@ # # # The only argument to this script is the name of the Exim binary that is to # # be copied. The script must be run in the correct current directory. # +# # +# One option, -o can be given. Default is "eximdir/exim" # ############################################################################### -open(IN, "$ARGV[0]") || die "** Failed to open $ARGV[0]: $!\n"; -open(OUT, ">eximdir/exim") || die "** Failed to open eximdir/exim: $!\n"; +our ($opt_o); +getopts('o:'); + +my $outfile = defined($opt_o) ? $opt_o : 'eximdir/exim'; + +open(IN, $ARGV[0]) || die "** Failed to open $ARGV[0]: $!\n"; +open(OUT, ">$outfile") || die "** Failed to open $outfile: $!\n"; while() { s/>>>running<<>>/; - s/(\d+\.\d+(?:\.\d+)?([_-]RC\d+|[_-]dev)?(?:[0-9a-fA-F-]*)\0<>)/"x.yz\0" . ("*" x (length($1) - 5))/e; + s{ + (\d+[_.]\d+ # major.minor + (?:[_.]\d+)? # optional security-patchlevel + (?:[_.]\d+)? # optional patchlevel + (?:[_-]RC\d+|[_-]?dev(?:start)?)? # optional RC or dev(start) + (?:(?:[_-]\d+)? # git tag distance + [-_][[:xdigit:]]+)? # git id + (?:[-_]XX)?\0 # git dirty bit + <> # marker + ) + } + {"x.yz\0" . ("*" x (length($1) - 5))}xe; print OUT; } close(IN); close(OUT); -chmod 04755, "eximdir/exim"; +chmod 04755, $outfile; # End of patchexim script