summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2013-08-22 09:21:45 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2013-08-22 09:21:45 +0100
commit184d3eea8478dd234f69516b1192c9bb35d62ab8 (patch)
treef4d5f42a2d157a8f31cdb739177c4ed0217e6ee7
parent2fc7f4f9df2771b5650ecfd93d0acd9a146a5e72 (diff)
Fail if a required config item is missing.
-rw-r--r--TODO1
-rw-r--r--debian/changelog1
-rwxr-xr-xdgit13
3 files changed, 8 insertions, 7 deletions
diff --git a/TODO b/TODO
index 4cd9ec3..4959a91 100644
--- a/TODO
+++ b/TODO
@@ -1,5 +1,4 @@
manpage better descriptions
-die on config missing
distro option
autocommit not on HEAD, optionally
field access error checks
diff --git a/debian/changelog b/debian/changelog
index 1e6ac24..e898a90 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,7 @@ dgit (0.4) experimental; urgency=low
* Use dgit.debian.net vhost on alioth. Closes #720172.
* Usage message. Closes #720085.
* Assorted manpage fixes.
+ * Fail if a required config item is missing.
--
diff --git a/dgit b/dgit
index a67cc7d..33da111 100755
--- a/dgit
+++ b/dgit
@@ -211,6 +211,7 @@ our %defcfg = ('dgit.default.distro' => 'debian',
sub cfg {
foreach my $c (@_) {
+ return undef if $c =~ /RETURN-UNDEF/;
my @cmd = (@git, qw(config --), $c);
my $v;
{
@@ -225,7 +226,7 @@ sub cfg {
my $dv = $defcfg{$c};
return $dv if defined $dv;
}
- return undef;
+ badcfg "need value for one of: @_";
}
sub access_distro () {
@@ -245,7 +246,7 @@ sub access_someuserhost ($) {
my ($some) = @_;
my $user = access_cfg("$some-user",'username');
my $host = access_cfg("$some-host");
- return defined($user) && length($user) ? "$user\@$host" : $host;
+ return length($user) ? "$user\@$host" : $host;
}
sub access_gituserhost () {
@@ -253,7 +254,7 @@ sub access_gituserhost () {
}
sub access_giturl () {
- my $url = access_cfg('git-url');
+ my $url = access_cfg('git-url','RETURN-UNDEF');
if (!defined $url) {
$url =
access_cfg('git-proto').
@@ -292,8 +293,8 @@ our %rmad;
sub archive_query ($) {
my ($method) = @_;
- my $query = access_cfg('archive-query');
- if (!$query) {
+ my $query = access_cfg('archive-query','RETURN-UNDEF');
+ if (!defined $query) {
my $distro = access_distro();
if ($distro eq 'debian') {
$query = "sshdakls:".
@@ -771,7 +772,7 @@ sub dopush () {
runcmd_ordryrun @debsign_cmd;
}
runcmd_ordryrun @git, qw(push),access_giturl(),"refs/tags/$tag";
- my $host = access_cfg('upload-host');
+ my $host = access_cfg('upload-host','RETURN-UNDEF');
my @hostarg = defined($host) ? ($host,) : ();
runcmd_ordryrun @dput, @hostarg, $changesfile;
printdone "pushed and uploaded $dsc->{Version}";