diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2018-07-08 20:01:50 +0100 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2018-07-08 22:51:37 +0100 |
commit | 98f793a762f743f59663dcf61935a3648719fc4c (patch) | |
tree | 8d214ba4b7ebc1358a7421a1077a971890bacad1 /dgit | |
parent | 4d87a7d43579ecd11d31116e6e9dab4e6adb1af3 (diff) |
Dgit.pm: Break out parsechangelog_loop from dgit
git-debrebase is going to want this.
No functional change except to some debugging messages.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Diffstat (limited to 'dgit')
-rwxr-xr-x | dgit | 18 |
1 files changed, 4 insertions, 14 deletions
@@ -2289,22 +2289,14 @@ sub generate_commits_from_dsc () { } my @clogcmd = qw(dpkg-parsechangelog --format rfc822 --all); - debugcmd "|",@clogcmd; - open CLOGS, "-|", @clogcmd or die $!; - my $clogp; my $r1clogp; printdebug "import clog search...\n"; + parsechangelog_loop \@clogcmd, "package changelog", sub { + my ($thisstanza, $desc) = @_; + no warnings qw(exiting); - for (;;) { - my $stanzatext = do { local $/=""; <CLOGS>; }; - printdebug "import clogp ".Dumper($stanzatext) if $debuglevel>1; - last if !defined $stanzatext; - - my $desc = "package changelog, entry no.$."; - open my $stanzafh, "<", \$stanzatext or die; - my $thisstanza = parsecontrolfh $stanzafh, $desc, 1; $clogp //= $thisstanza; printdebug "import clog $thisstanza->{version} $desc...\n"; @@ -2339,9 +2331,7 @@ sub generate_commits_from_dsc () { $r1clogp = $thisstanza; printdebug "import clog $r1clogp->{version} becomes r1\n"; - } - die $! if CLOGS->error; - close CLOGS or $?==SIGPIPE or failedcmd @clogcmd; + }; $clogp or fail "package changelog has no entries!"; |