diff options
Diffstat (limited to 'Conf.pm')
-rw-r--r-- | Conf.pm | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/Conf.pm b/Conf.pm new file mode 100644 index 000000000..6936787a0 --- /dev/null +++ b/Conf.pm @@ -0,0 +1,104 @@ +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Installer. +# +# The Initial Developer of the Original Code is Zach Lipton +# Portions created by Zach Lipton are +# Copyright (C) 2002 Zach Lipton. All +# Rights Reserved. +# +# Contributor(s): Zach Lipton <zach@zachlipton.com> +# +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. If you wish to allow use of your +# version of this file only under the terms of the GPL and not to +# allow others to use your version of this file under the MPL, +# indicate your decision by deleting the provisions above and +# replace them with the notice and other provisions required by +# the GPL. If you do not delete the provisions above, a recipient +# may use your version of this file under either the MPL or the +# GPL. +# + +package Conf; +no warnings; # evil beings... + +use Exporter; +@ISA = qw(Exporter); +@EXPORT = qw(ask holduntilkey output setConf getConf getParam setParam); + +# this is very important. We set a default controller which is responsible +# for getting data from the user and returning it back to us. Our default +# is rather simple, but if a packager wishes to use a Tk front-end or customize +# the look and feel of the installation process to match with their system, they +# can override our controller by making a new one and setting +# $Conf::controller = "foo" in a custom Configure.pl +# This is really intended for debian-style configuration systems +$controller = "Conf::DefaultController"; + + +unless (eval("use $controller")) { + die "ack, something went wrong when I tried to use controller $controller $@"; +} + +eval("use Conf::Supplies::Config"); # do this in an eval because it may not exist yet +# this module will store defaults for the installation + +# ASK: +# call me like this: +# ask('questionname','question?','default answer'); +sub ask { + my ($name, $question, $default) = @_; + if ($Conf::Supplies::Config::answers{$name}) { # if it's in Config.pm, use it + $default = $Conf::Supplies::Config::answers{$name}; + } + _ask($name,$question,$default); + if ($answer eq "") { $answer = $default; } # handle the default + $main::c{$name} = $answer; +} + +#HOLDUNTILKEY +# allows you to pause until the user presses a key +sub holduntilkey { + _holduntilkey(); +} + +sub output { + my ($output, $loud) = @_; + _output($output,$loud); +} + +sub setConf($$) { + my ($name, $value) = @_; + $main::c{$name} = $value; # and set it +} + + +sub getConf($) { + my $name = @_; + return $main::c{$name}; # return the value +} + +# ask for the param name +sub getParam($) { + my $param = @_; + return $params{$param}; # return the param +} + +# set a param +sub setParam($$) { + my ($name, $value) = @_; + $params{$name} = $value; # and set it +} + +1; |