From 251174a2cc06e0cd3041c0b97b9fc687902979fc Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 15 Sep 2013 13:28:21 +0100 Subject: [PATCH] wip changes for remote push --- dgit | 64 ++++++++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 49 insertions(+), 15 deletions(-) diff --git a/dgit b/dgit index 58567498..949d22c7 100755 --- a/dgit +++ b/dgit @@ -566,6 +566,18 @@ sub make_commit ($) { return cmdoutput @git, qw(hash-object -w -t commit), $file; } +sub clogp_authline ($) { + my ($clogp) = @_; + my $author = getfield $clogp, 'Maintainer'; + $author =~ s#,.*##ms; + my $date = cmdoutput qw(date), '+%s %z', qw(-d), getfield($clogp,'Date'); + my $authline = "$author $date"; + $authline =~ m/^[^<>]+ \<\S+\> \d+ [-+]\d+$/ or + fail "unexpected commit author line format \`$authline'". + " (was generated from changelog Maintainer field)"; + return $authline; +} + sub generate_commit_from_dsc () { prep_ud(); chdir $ud or die $!; @@ -586,13 +598,7 @@ sub generate_commit_from_dsc () { my ($tree,$dir) = mktree_in_ud_from_only_subdir(); runcmd qw(sh -ec), 'dpkg-parsechangelog >../changelog.tmp'; my $clogp = parsecontrol('../changelog.tmp',"commit's changelog"); - my $date = cmdoutput qw(date), '+%s %z', qw(-d), getfield($clogp,'Date'); - my $author = getfield $clogp, 'Maintainer'; - $author =~ s#,.*##ms; - my $authline = "$author $date"; - $authline =~ m/^[^<>]+ \<\S+\> \d+ [-+]\d+$/ or - fail "unexpected commit author line format \`$authline'". - " (was generated from changelog Maintainer field)"; + my $authline = clogp_authline $clogp; my $changes = getfield $clogp, 'Changes'; open C, ">../commit.tmp" or die $!; print C <', $tfn->('.tmp') or die $!; + print TO <('.tmp'); + if ($sign) { + if (!defined $keyid) { + $keyid = access_cfg('keyid','RETURN-UNDEF'); + } + unlink $tfn->('.tmp.asc') or $!==&ENOENT or die $!; + my @sign_cmd = (@gpg, qw(--clearsign --armor)); + push @sign_cmd, qw(-u),$keyid if defined $keyid; + push @sign_cmd, $tfn->('.tmp'); + runcmd_ordryrun @sign_cmd; + if (!$dry + runcmd_ordryrun @ + } if (!check_for_git()) { create_remote_git_repo(); } @@ -976,17 +1011,16 @@ sub dopush () { } else { print "[new .dsc left in $dscfn.tmp]\n"; } + if ($sign) { - if (!defined $keyid) { - $keyid = access_cfg('keyid','RETURN-UNDEF'); + if (!$as_remote) { + my @tag_cmd = (@git, qw(tag -a -m), + ); + push @tag_cmd, $tag; + runcmd_ordryrun @tag_cmd; + } else { } - my @tag_cmd = (@git, qw(tag -a -m), - "$package release $dversion for $csuite [dgit]"); - push @tag_cmd, $tag; - runcmd_ordryrun @tag_cmd; - - push @tag_cmd, qw(-u),$keyid if defined $keyid; push @tag_cmd, qw(-u),$keyid if defined $keyid; my @debsign_cmd = @debsign; -- 2.30.2