X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=dgit;h=9b895b0350a7bc0cbf8b635b6c60779e648a1b24;hp=a75a0711a2dcb48a0a3ac8a7f8f4468e1ea0b86b;hb=df762569f6a197ed670df94741c4dfa9203e0994;hpb=3940b368db5ffb18b61b6857c22498b46094fca1 diff --git a/dgit b/dgit index a75a0711..9b895b03 100755 --- a/dgit +++ b/dgit @@ -441,6 +441,8 @@ sub cmd_help () { exit 0; } +our $td = $ENV{DGIT_TEST_DUMMY_DIR} || "DGIT_TEST_DUMMY_DIR-unset"; + our %defcfg = ('dgit.default.distro' => 'debian', 'dgit.default.username' => '', 'dgit.default.archive-query-default-component' => 'main', @@ -453,7 +455,18 @@ our %defcfg = ('dgit.default.distro' => 'debian', 'dgit-distro.debian.sshpsql-host' => 'coccia.debian.org', 'dgit-distro.debian.sshpsql-dbname' => 'service=projectb', 'dgit-distro.debian.upload-host' => 'ftp-master', # for dput - 'dgit-distro.debian.mirror' => 'http://ftp.debian.org/debian/'); + 'dgit-distro.debian.mirror' => 'http://ftp.debian.org/debian/', + 'dgit-distro.test-dummy.ssh' => "$td/ssh", + 'dgit-distro.test-dummy.username' => "alice", + 'dgit-distro.test-dummy.git-check' => "ssh-cmd", + 'dgit-distro.test-dummy.git-create' => "ssh-cmd", + 'dgit-distro.test-dummy.git-url' => "$td/git", + 'dgit-distro.test-dummy.git-host' => "git", + 'dgit-distro.test-dummy.git-path' => "$td/git", + 'dgit-distro.test-dummy.archive-query' => "dummycat:$td/aq", + 'dgit-distro.test-dummy.mirror' => "file://$td/mirror/", + 'dgit-distro.test-dummy.upload-host' => 'test-dummy', + ); sub cfg { foreach my $c (@_) { @@ -563,6 +576,23 @@ sub parsechangelog { return $c; } +sub git_get_ref ($) { + my ($refname) = @_; + my $got = cmdoutput_errok @git, qw(show-ref --), $refname; + if (!defined $got) { + $?==256 or fail "git show-ref failed (status $?)"; + printdebug "ref $refname= [show-ref exited 1]\n"; + return ''; + } + if ($got =~ m/^(\w+) \Q$refname\E$/m) { + printdebug "ref $refname=$1\n"; + return $1; + } else { + printdebug "ref $refname= [no match]\n"; + return ''; + } +} + our %rmad; sub archive_query ($) { @@ -638,7 +668,7 @@ sub sshpsql ($$) { my ($userhost,$dbname) = ($`,$'); #'; my @rows; my @cmd = (access_cfg_ssh, $userhost, - shellquote qw(psql -A), $dbname, qw(-c), $sql); + "export LANG=C; ".shellquote qw(psql -A), $dbname, qw(-c), $sql); printcmd(\*DEBUG,$debugprefix."|",@cmd) if $debug>0; open P, "-|", @cmd or die $!; while (
) {
@@ -698,6 +728,45 @@ END
return $rows[0];
}
+sub canonicalise_suite_dummycat ($$) {
+ my ($proto,$data) = @_;
+ my $dpath = "$data/suite.$isuite";
+ if (!open C, "<", $dpath) {
+ $!==ENOENT or die "$dpath: $!";
+ printdebug "dummycat canonicalise_suite $isuite $dpath ENOENT\n";
+ return $isuite;
+ }
+ $!=0; $_ =