summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormkanat%bugzilla.org <>2006-09-04 04:18:53 +0200
committermkanat%bugzilla.org <>2006-09-04 04:18:53 +0200
commit9d96ac724457e849dcc01c9fb1b87128a6b75e05 (patch)
tree8f61489bbb03a20d296aed563e2cdaca281d1d5e
parent788beb08c05baf7aeb2556fe1355fe15a21e3f8f (diff)
downloadbugzilla-9d96ac724457e849dcc01c9fb1b87128a6b75e05.tar.gz
bugzilla-9d96ac724457e849dcc01c9fb1b87128a6b75e05.tar.xz
Bug 347096: Create Bugzilla->localconfig and replace most read_localconfig calls with it
Patch By Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit, a=myk
-rw-r--r--Bugzilla.pm6
-rw-r--r--Bugzilla/Install/Filesystem.pm4
-rw-r--r--Bugzilla/Install/Localconfig.pm13
-rwxr-xr-xchecksetup.pl8
4 files changed, 17 insertions, 14 deletions
diff --git a/Bugzilla.pm b/Bugzilla.pm
index 19c52ee2f..0fb223e9e 100644
--- a/Bugzilla.pm
+++ b/Bugzilla.pm
@@ -32,6 +32,7 @@ use Bugzilla::Auth;
use Bugzilla::Auth::Persist::Cookie;
use Bugzilla::CGI;
use Bugzilla::DB;
+use Bugzilla::Install::Localconfig qw(read_localconfig);
use Bugzilla::Template;
use Bugzilla::User;
use Bugzilla::Error;
@@ -147,6 +148,11 @@ sub cgi {
return request_cache()->{cgi};
}
+sub localconfig {
+ request_cache()->{localconfig} ||= read_localconfig();
+ return request_cache()->{localconfig};
+}
+
sub params {
my $class = shift;
request_cache()->{params} ||= Bugzilla::Config::read_param_file();
diff --git a/Bugzilla/Install/Filesystem.pm b/Bugzilla/Install/Filesystem.pm
index 9ba8fcd1b..02131531c 100644
--- a/Bugzilla/Install/Filesystem.pm
+++ b/Bugzilla/Install/Filesystem.pm
@@ -59,7 +59,7 @@ sub FILESYSTEM {
my $templatedir = bz_locations()->{'templatedir'};
my $libdir = bz_locations()->{'libpath'};
- my $ws_group = read_localconfig()->{'webservergroup'};
+ my $ws_group = Bugzilla->localconfig->{'webservergroup'};
# The set of permissions that we use:
@@ -494,7 +494,7 @@ sub fix_all_file_permissions {
my $owner_id = POSIX::getuid();
my $group_id = POSIX::getgid();
- my $ws_group = read_localconfig()->{'webservergroup'};
+ my $ws_group = Bugzilla->localconfig->{'webservergroup'};
if ($ws_group) {
my $ws_group_id = getgrnam($ws_group);
die "There is no such group: $ws_group. Check your \$webservergroup"
diff --git a/Bugzilla/Install/Localconfig.pm b/Bugzilla/Install/Localconfig.pm
index ef5605d41..f01be8bf9 100644
--- a/Bugzilla/Install/Localconfig.pm
+++ b/Bugzilla/Install/Localconfig.pm
@@ -33,11 +33,9 @@ use IO::File;
use Safe;
use base qw(Exporter);
-our @EXPORT = qw(
- read_localconfig
-);
our @EXPORT_OK = qw(
+ read_localconfig
update_localconfig
);
@@ -344,6 +342,9 @@ EOT
# Now we do some checks on localconfig values.
_check_web_server_group($localconfig->{'webservergroup'}) if $output;
+ # Reset the cache for Bugzilla->localconfig so that it will be re-read
+ delete Bugzilla->request_cache->{localconfig};
+
return { old_vars => \@old_vars, new_vars => \@new_vars };
}
@@ -460,14 +461,14 @@ Bugzilla::Install::Localconfig - Functions and variables dealing
=head1 SYNOPSIS
- use Bugzilla::Install::Requirements qw(read_localconfig update_localconfig)
- my $localconfig = read_localconfig();
+ use Bugzilla::Install::Requirements qw(update_localconfig);
update_localconfig({ output => 1, answer => \%answer });
=head1 DESCRIPTION
This module is used primarily by L<checksetup.pl> to create and
-modify the localconfig file.
+modify the localconfig file. Most scripts should use L<Bugzilla/localconfig>
+to access localconfig variables.
=head1 CONSTANTS
diff --git a/checksetup.pl b/checksetup.pl
index 7f3c6783f..27ee5d6ea 100755
--- a/checksetup.pl
+++ b/checksetup.pl
@@ -331,7 +331,7 @@ require Bugzilla::Bug;
import Bugzilla::Bug qw(is_open_state);
require Bugzilla::Install::Localconfig;
-import Bugzilla::Install::Localconfig qw(read_localconfig update_localconfig);
+import Bugzilla::Install::Localconfig qw(update_localconfig);
require Bugzilla::Install::Filesystem;
import Bugzilla::Install::Filesystem qw(update_filesystem create_htaccess
@@ -349,11 +349,7 @@ require Bugzilla::Install;
print "Reading " . bz_locations()->{'localconfig'} . "...\n" unless $silent;
update_localconfig({ output => !$silent, answer => \%answer });
-my $lc_hash = read_localconfig();
-
-# XXX Eventually this variable can be eliminated, but it is
-# used more than once throughout checksetup right now.
-my $my_webservergroup = $lc_hash->{'webservergroup'};
+my $lc_hash = Bugzilla->localconfig;
###########################################################################
# Check --DATABASE-- setup