use Dpkg::Version;
use POSIX;
use IPC::Open2;
-use File::Temp;
our $our_version = 'UNRELEASED'; ###substituted###
fail "protocol violation; $m not expected";
}
-sub protocol_expect ($&) {
- my ($fh, $match) = @_;
+sub protocol_expect (&$) {
+ my ($match, $fh) = @_;
local $_;
$_ = <$fh>;
defined && chomp or badproto $fh, "eof";
my ($fh, $ourfn) = @_;
open PF, ">", $ourfn or die "$ourfn: $!";
for (;;) {
- protocol_expect \*STDIN, { m/^data-block (.*})$|data-end$/ };
+ protocol_expect { m/^data-block (.*})$|data-end$/ } \*STDIN;
length $1 or last;
my $d = protocol_read_bytes \*STDIN, $1;
print PF $d or die $!;
foreach my $fn (@ourfns) {
protocol_receive_file \*STDIN, $fn;
}
- protocol_expect \*STDIN, { m/^files-end$/ };
+ protocol_expect { m/^files-end$/ } \*STDIN;
}
#---------- remote protocol support, initiator ----------
sub initiator_expect (&) {
my ($match) = @_;
- protocol_expect \*RO, &$match;
+ protocol_expect { &$match } \*RO;
}
#---------- end remote code ----------
push @out, $_;
}
}
- return join '', @out;
+ return join ' ', @out;
}
sub printcmd {
my $fh = shift @_;
my $intro = shift @_;
- print $fh $intro or die $!;
+ print $fh $intro," " or die $!;
print $fh shellquote @_ or die $!;
print $fh "\n" or die $!;
}
dgit [dgit-opts] fetch|pull [dgit-opts] [suite]
dgit [dgit-opts] build [git-buildpackage-opts|dpkg-buildpackage-opts]
dgit [dgit-opts] push [dgit-opts] [suite]
+ dgit [dgit-opts] rpush build-host:build-dir ...
important dgit options:
-k<keyid> sign tag and package with <keyid> instead of default
--dry-run -n do not change anything, but go through the motions
return ($clogp, $cversion, $tag, $dscfn);
}
-sub push_parse_dsc ($$) {
+sub push_parse_dsc ($$$) {
my ($dscfn,$dscfnwhat, $cversion) = @_;
$dsc = parsecontrol($dscfn,$dscfnwhat);
my $dversion = getfield $dsc, 'Version';
" does not match changelog \`$clogp->{$field}'";
}
+ my $cversion = getfield $clogp, 'Version';
+
# We make the git tag by hand because (a) that makes it easier
# to control the "tagger" (b) we can do remote signing
my $authline = clogp_authline $clogp;
if ($sign) {
my @debsign_cmd = @debsign;
push @debsign_cmd, "-k$keyid" if defined $keyid;
- push @debsign_cmd, "-p$pgp[0]" if $pgp[0] ne 'gpg';
+ push @debsign_cmd, "-p$gpg[0]" if $gpg[0] ne 'gpg';
push @debsign_cmd, $changesfile;
runcmd_ordryrun @debsign_cmd;
}
}
}
- responder_send_file('changes',$changesfn);
+ responder_send_file('changes',$changesfile);
my $tfn = sub { ".git/dgit/tag$_[0]"; };
my ($tagobjfn) =
my $dryrunsuffix = $dryrun ? ".tmp" : "";
responder_receive_files('signed-dsc-changes',
"../$dscfn$dryrunsuffix",
- "$changesfile$dryrupnsuffix");
+ "$changesfile$dryrunsuffix");
} else {
sign_changes $changesfile;
}
die unless @rargs;
my ($dir) = @rargs;
chdir $dir or die "$dir: $!";
- $we_are_remote = 1;
+ $we_are_responder = 1;
$|=1;
responder_send_command("dgit-remote-push-ready");
&cmd_push;
$dir =~ s{^-}{./-};
my @rargs = ($dir);
my @rdgit;
- push @rdgit, @dgit
+ push @rdgit, @dgit;
push @rdgit, @ropts;
push @rdgit, (scalar @rargs), @rargs;
push @rdgit, @ARGV;
($i_clogp, $i_version, $i_tag, $i_dscfn) =
push_parse_changelog 'remote-changelog.822';
die if $i_dscfn =~ m#/|^\W#;
- return $dscfn;
+ return $i_dscfn;
}
sub i_want_signed_tag {
- defined $i_param{'head'} && defined $dscfn
+ defined $i_param{'head'} && defined $i_dscfn
or badproto \*RO, "sequencing error";
my $head = $i_param{'head'};
die if $head =~ m/[^0-9a-f]/ || $head !~ m/^../;