chiark
/
gitweb
/
~ianmdlvl
/
dgit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Support dgit-distro.<distro>.keyid config option.
[dgit.git]
/
dgit
diff --git
a/dgit
b/dgit
index 93fb6fcd2a47beff177cab661b9a316ef2046958..78a0e31dbd44a4efee44fb1661c475f261da256f 100755
(executable)
--- a/
dgit
+++ b/
dgit
@@
-28,6
+28,7
@@
use Dpkg::Version;
use POSIX;
our $isuite = 'unstable';
use POSIX;
our $isuite = 'unstable';
+our $idistro;
our $package;
our $sign = 1;
our $package;
our $sign = 1;
@@
-69,7
+70,11
@@
my $lbranch_re = '^refs/heads/'.$branchprefix.'/([^/.]+)$';
sub lref () { return "refs/heads/".lbranch(); }
sub lrref () { return "refs/remotes/$remotename/$csuite"; }
sub rrref () { return "refs/$branchprefix/$csuite"; }
sub lref () { return "refs/heads/".lbranch(); }
sub lrref () { return "refs/remotes/$remotename/$csuite"; }
sub rrref () { return "refs/$branchprefix/$csuite"; }
-sub debiantag ($) { return "debian/$_[0]"; }
+sub debiantag ($) {
+ my ($v) = @_;
+ $v =~ y/~:/_%/;
+ return "debian/$v";
+}
sub dscfn ($) { return "${package}_$_[0].dsc"; }
sub dscfn ($) { return "${package}_$_[0].dsc"; }
@@
-246,7
+251,7
@@
sub access_distro () {
sub access_cfg (@) {
my (@keys) = @_;
sub access_cfg (@) {
my (@keys) = @_;
- my $distro = access_distro();
+ my $distro =
$idistro ||
access_distro();
my $value = cfg(map { ("dgit-distro.$distro.$_",
"dgit.default.$_") } @keys);
return $value;
my $value = cfg(map { ("dgit-distro.$distro.$_",
"dgit.default.$_") } @keys);
return $value;
@@
-706,7
+711,15
@@
sub pull () {
}
sub check_not_dirty () {
}
sub check_not_dirty () {
- runcmd @git, qw(diff --quiet HEAD);
+ my @cmd = (@git, qw(diff --quiet HEAD));
+ printcmd(\*DEBUG,"+",@cmd) if $debug>0;
+ $!=0; $?=0; system @cmd;
+ return if !$! && !$?;
+ if (!$! && $?==256) {
+ fail "working tree is dirty (does not match HEAD)";
+ } else {
+ failedcmd @cmd;
+ }
}
sub commit_quilty_patch ($) {
}
sub commit_quilty_patch ($) {
@@
-802,6
+815,9
@@
sub dopush () {
print "[new .dsc left in $dscfn.tmp]\n";
}
if ($sign) {
print "[new .dsc left in $dscfn.tmp]\n";
}
if ($sign) {
+ if (!defined $keyid) {
+ $keyid = access_cfg('keyid','RETURN-UNDEF');
+ }
my @tag_cmd = (@git, qw(tag -s -m),
"Release $dversion for $csuite [dgit]");
push @tag_cmd, qw(-u),$keyid if defined $keyid;
my @tag_cmd = (@git, qw(tag -s -m),
"Release $dversion for $csuite [dgit]");
push @tag_cmd, qw(-u),$keyid if defined $keyid;
@@
-978,6
+994,8
@@
sub parseopts () {
push @$om, $2;
} elsif (m/^--existing-package=(.*)/s) {
$existing_package = $1;
push @$om, $2;
} elsif (m/^--existing-package=(.*)/s) {
$existing_package = $1;
+ } elsif (m/^--distro=(.*)/s) {
+ $idistro = $1;
} else {
badusage "unknown long option \`$_'";
}
} else {
badusage "unknown long option \`$_'";
}
@@
-994,6
+1012,8
@@
sub parseopts () {
$new_package=1;
} elsif (s/^-c(.*=.*)//s) {
push @git, '-c', $1;
$new_package=1;
} elsif (s/^-c(.*=.*)//s) {
push @git, '-c', $1;
+ } elsif (s/^-d(.*)//s) {
+ $idistro = $1;
} elsif (s/^-C(.*)//s) {
$changesfile = $1;
} elsif (s/^-k(.*)//s) {
} elsif (s/^-C(.*)//s) {
$changesfile = $1;
} elsif (s/^-k(.*)//s) {