From 462729b354f494b3c6013d547e1814affa63cf63 Mon Sep 17 00:00:00 2001 From: "Kyle J. McKay" Date: Sat, 29 Oct 2016 17:24:58 -0700 Subject: [PATCH] Project.pm: load a few more values for mirrors Add a new list of read-only fields to be loaded only for mirrors and populate it with the "girocco.bang" section variables. Signed-off-by: Kyle J. McKay --- Girocco/Project.pm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Girocco/Project.pm b/Girocco/Project.pm index 9144c9d..3cdcec6 100644 --- a/Girocco/Project.pm +++ b/Girocco/Project.pm @@ -78,6 +78,7 @@ sub _mkdir_forkees { # With a leading [:%!] a trailing ':defval' may be added to select the default value to use if unset # Otherwise it's a project file name to be loaded # %propmapro entries are loaded but never written +# %propmapromirror entries are loaded only for mirrors but never written our %propmap = ( url => ':baseurl', @@ -107,6 +108,12 @@ our %propmapro = ( origurl => ':baseurl', ); +our %propmapromirror = ( + bangcount => '%girocco.bang.count', + bangfirstfail => '%girocco.bang.firstfail', + bangmessagesent => '!girocco.bang.messagesent', +); + # Projects with any of these names will be disallowed to avoid possible # collisions with cgi script paths or chroot paths # NOTE: names are checked after using lc on them, so all entries MUST be lowercase @@ -175,6 +182,7 @@ sub _property_fget { my ($name, $nodef) = @_; my $pname = $propmap{$name}; $pname = $propmapro{$name} unless $pname; + $pname = $propmapromirror{$name} unless $pname; $pname or die "unknown property: $name"; if ($pname =~ /^([:%!])([^:]+)(:.*)?$/) { my ($where, $pname, $defval) = ($1, lc($2), substr(($3||":"),1)); @@ -272,6 +280,11 @@ sub _properties_load { foreach my $prop (keys %propmapro) { $self->{$prop} = $self->_property_fget($prop); } + if ($self->{mirror}) { + foreach my $prop (keys %propmapromirror) { + $self->{$prop} = $self->_property_fget($prop); + } + } $self->_readlocalconfigfile unless ref($self->{configfilehash}) eq 'HASH'; delete $self->{auth}; -- 2.11.4.GIT