From 184d3eea8478dd234f69516b1192c9bb35d62ab8 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Thu, 22 Aug 2013 09:21:45 +0100 Subject: [PATCH] Fail if a required config item is missing. --- TODO | 1 - debian/changelog | 1 + dgit | 13 +++++++------ 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/TODO b/TODO index 4cd9ec36..4959a913 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 1e6ac247..e898a904 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 a67cc7d0..33da1117 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}"; -- 2.30.2