Alien-LibreSSL

 view release on metacpan or  search on metacpan

patch/gen.pl  view on Meta::CPAN

use strict;
use warnings;
use Data::Dumper qw( Dumper );
use Path::Tiny qw( path );

my $patch_filename = shift @ARGV;
die "need filename" unless defined $patch_filename;

my($pl_filename) = $patch_filename =~ /^(.*)\.diff$/;
die "unable to determine pl name" unless defined $pl_filename;
$pl_filename .= '.pl';

my @lines = path($patch_filename)->lines;

my $filename;
my %p;

while(@lines)
{
  my $line = shift @lines;
  if($line =~ /^diff --git a\/(.*?)\s/)
  {
    $filename = $1;
    shift @lines for (1..3);
  }
  else
  {
    $p{$filename} .= $line;
  }
}

path($pl_filename)->spew(
  "__DATA__\n my ",
  Dumper(\%p),
);

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 0.554 second using v1.00-cache-2.02-grep-82fe00e-cpan-2c419f77a38b )