5 # $ time dpkg-parsechangelog >/dev/null
10 # $ time ~/things/Dgit/dgit/tests/tstunt/dpkg-parsechangelog >/dev/null
17 $SIG{__WARN__} = sub { die $_[0]; }; # no use of system, so we avoid #793471
19 my $infile = "debian/changelog";
21 #print STDERR ">@ARGV<\n";
25 if (@ARGV && $ARGV[0] =~ s/^-l//) {
26 $infile = shift @ARGV;
31 $strip =~ s#/[^/]+$## or die "$0 ?";
32 foreach my $k (qw(PATH PERLLIB)) {
33 my @opath = defined $ENV{$k} ? split /\:/, $ENV{$k} : ();
34 my @npath = grep { $_ ne $strip } @opath;
35 @npath != @opath or die "$0 $k ".($ENV{$k}//"(undef)")." ?";
36 $ENV{$k} = join ':', @npath;
37 delete $ENV{$k} if !@npath;
39 die if $ENV{'DGIT_NO_TSTUNT_CLPARSE'}++;
40 exec 'dpkg-parsechangelog', @orgargv;
44 open C, $infile or die $!;
47 m/^(\S+) \(([^()]+)\) (\S+)\; urgency=(\S+)$/ or die "$!, $_ ?";
48 print <<END or die $!;
60 if (m/^ -- ([^<>]+\<\S+\>) (\w[^<>]+\w)$/) {
61 print <<END or die $!;
65 print "Timestamp: " or die $!;
66 exec qw(date +%s -d), $2; die $!;
67 } elsif (m/^ --\s*$/) {
72 print " .\n" x $blanks or die $!;
74 print " $_" or die $!;