summaryrefslogtreecommitdiffstats
path: root/scripts/update_localconfig.pl
diff options
context:
space:
mode:
authorDavid Lawrence <dkl@mozilla.com>2016-12-08 00:41:25 +0100
committerDavid Lawrence <dkl@mozilla.com>2016-12-08 00:41:25 +0100
commit4cd1371510e88a392d00e9d5c315abb9ff622e42 (patch)
treeae90d71c74f8894f34a1a5480ef4bcfd5d84b465 /scripts/update_localconfig.pl
parentd68cd60c3825c6220a65e2e2888ce0d1e97e58e6 (diff)
downloadbugzilla-4cd1371510e88a392d00e9d5c315abb9ff622e42.tar.gz
bugzilla-4cd1371510e88a392d00e9d5c315abb9ff622e42.tar.xz
Bug 1318502 - Add help utilities to scripts/ dir to aid in setting localconfig and data/params to custom values.
Diffstat (limited to 'scripts/update_localconfig.pl')
-rwxr-xr-xscripts/update_localconfig.pl45
1 files changed, 45 insertions, 0 deletions
diff --git a/scripts/update_localconfig.pl b/scripts/update_localconfig.pl
new file mode 100755
index 000000000..ca3329022
--- /dev/null
+++ b/scripts/update_localconfig.pl
@@ -0,0 +1,45 @@
+#!/usr/bin/perl
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This Source Code Form is "Incompatible With Secondary Licenses", as
+# defined by the Mozilla Public License, v. 2.0.
+
+use 5.10.1;
+use strict;
+use warnings;
+
+use lib qw(. lib local/lib/perl5);
+
+use Bugzilla;
+use Bugzilla::Config qw( :admin );
+use Bugzilla::Constants;
+use Bugzilla::Install::Localconfig;
+
+use File::Slurp;
+
+Bugzilla->usage_mode(USAGE_MODE_CMDLINE);
+
+my $localconfig = Bugzilla::Install::Localconfig::read_localconfig();
+
+my ($param_name, $param_value) = @ARGV;
+die "Syntax: $0 param_name param_value\n" unless defined($param_value);
+die "Invalid param name: $param_name\n" unless exists $localconfig->{$param_name};
+
+if ($localconfig->{$param_name} ne $param_value) {
+ my @file = read_file('localconfig');
+ my $updated = 0;
+ foreach my $line (@file) {
+ next unless $line =~ /^\s*\$([\w_]+)\s*=\s*'([^']*)'/;
+ my ($name, $value) = ($1, $2);
+ if ($name eq $param_name && $value ne $param_value) {
+ print "setting '$name' to '$param_value'\n";
+ $line = "\$$name = '$param_value';\n";
+ $updated = 1;
+ }
+ }
+ write_file('localconfig', @file) if $updated;
+} else {
+ print "'$param_name' is already '$param_value'\n";
+}