X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=infra%2Fdgit-repos-server;h=7c447d288050856a281c51feb7fabe8770f68c6f;hp=c70bc27fd13b8a7d50ea3d25dba2bd9a7588f3ef;hb=d0c5d6629f42b2efa52fb48a5f24407ef18f86b2;hpb=1b2c10f57b0257aac61a696378e9c8c05df8bf4f;ds=sidebyside diff --git a/infra/dgit-repos-server b/infra/dgit-repos-server index c70bc27f..7c447d28 100755 --- a/infra/dgit-repos-server +++ b/infra/dgit-repos-server @@ -2,7 +2,7 @@ # dgit-repos-server # # usages: -# .../dgit-repos-server SUITES KEYRING-AUTH-SPEC DGIT-REPOS-DIR --ssh +# .../dgit-repos-server DISTRO SUITES KEYRING-AUTH-SPEC DGIT-REPOS-DIR --ssh # internal usage: # .../dgit-repos-server --pre-receive-hook PACKAGE # @@ -331,6 +331,18 @@ sub parsetag () { for (;;) { print PT or die $!; $!=0; $_=; defined or die "missing signature? $!"; + if (m/^\[dgit ([^"].*)\]$/) { # [dgit "something"] is for future + $_ = $1." "; + for (;;) { + if (s/^distro\=(\S+) //) { + die "$1 != $distro" unless $1 eq $distro; + } elsif (s/^[-+.=0-9a-z]+ //) { + } else { + die "unknown dgit info in tag"; + } + } + next; + } last if m/^-----BEGIN PGP/; } for (;;) { @@ -549,6 +561,7 @@ sub parseargsdispatch () { shift @ARGV; @ARGV == 1 or die; $package = shift @ARGV; + defined($distro = $ENV{'DGIT_DRS_DISTRO'}) or die; defined($suitesfile = $ENV{'DGIT_DRS_SUITES'}) or die; defined($workrepo = $ENV{'DGIT_DRS_WORK'}) or die; defined($destrepo = $ENV{'DGIT_DRS_DEST'}) or die; @@ -564,6 +577,7 @@ sub parseargsdispatch () { exit 0; } + $ENV{'DGIT_DRS_DISTRO'} = argval(); $ENV{'DGIT_DRS_SUITES'} = argval(); $ENV{'DGIT_DRS_KEYRINGS'} = argval(); $dgitrepos = argval();