diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2013-08-22 09:21:45 +0100 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2013-08-22 09:21:45 +0100 |
commit | 184d3eea8478dd234f69516b1192c9bb35d62ab8 (patch) | |
tree | f4d5f42a2d157a8f31cdb739177c4ed0217e6ee7 | |
parent | 2fc7f4f9df2771b5650ecfd93d0acd9a146a5e72 (diff) |
Fail if a required config item is missing.
-rw-r--r-- | TODO | 1 | ||||
-rw-r--r-- | debian/changelog | 1 | ||||
-rwxr-xr-x | dgit | 13 |
3 files changed, 8 insertions, 7 deletions
@@ -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. -- @@ -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}"; |