+our %defcfg = ('dgit.default.distro' => 'debian',
+ 'dgit.default.username' => '',
+ 'dgit-distro.debian.git-host' => 'git.debian.org',
+ 'dgit-distro.debian.git-proto' => 'git+ssh://',
+ 'dgit-distro.debian.git-path' => '/git/dgit-repos',
+ 'dgit-distro.debian.git-check' => 'ssh-cmd',
+ 'dgit-distro.debian.git-create' => 'ssh-cmd');
+
+sub cfg {
+ foreach my $c (@_) {
+ my $v = cmdoutput_errok qw(git config --), $c;
+ if ($?==0) {
+ chomp $v;
+ return $v;
+ } elsif ($?!=256) {
+ die "$c $?";
+ }
+ my $dv = $defcfg{$c};
+ return $dv if defined $dv;
+ }
+ return undef;
+}
+
+sub access_cfg ($) {
+ my ($key) = @_;
+ my $distro = cfg("dgit-suite.$suite.distro",
+ "dgit.default.distro"); });
+ my $value = cfg("dgit-distro.$distro.$key",
+ "dgit.default.$key");
+ return $value;
+}
+
+sub access_gituserhost () {
+ my $user = access_cfg('git-user');
+ my $host = access_cfg('git-host');
+ return defined($user) && length($user) ? "$user\@$host" : $host;
+}
+
+sub access_giturl () {
+ my $url = access_cfg('git-url');
+ return $url if defined $url;
+ return
+ access_cfg('git-proto').
+ access_gituserhost().
+ access_cfg('git-path');
+}
+