3 use vars qw($default_dir);
8 FS::Conf - Read access to Freeside configuration values
14 $conf = new FS::Conf "/config/directory";
16 $FS::Conf::default_dir = "/config/directory";
21 $value = $conf->config('key');
22 @list = $conf->config('key');
23 $bool = $conf->exists('key');
27 Read access to Freeside configuration values. Keys currently map to filenames,
28 but this may change in the future.
34 =item new [ DIRECTORY ]
36 Create a new configuration object. A directory arguement is required if
37 $FS::Conf::default_dir has not been set.
43 my($class) = ref($proto) || $proto;
44 my($self) = { 'dir' => $dir || $default_dir } ;
45 bless ($self, $class);
50 Returns the directory.
56 my $dir = $self->{dir};
57 -e $dir or die "FATAL: $dir doesn't exist!";
58 -d $dir or die "FATAL: $dir isn't a directory!";
59 -r $dir or die "FATAL: Can't read $dir!";
60 -x $dir or die "FATAL: $dir not searchable (executable)!";
66 Returns the configuration value or values (depending on context) for key.
73 my $fh = new IO::File "<$dir/$file" or return;
76 /^(.*)$/ or die "Illegal line in $dir/$file:\n$_\n";
80 <$fh> =~ /^(.*)$/ or die "Illegal line in $dir/$file:\n$_\n";
87 Returns true if the specified key exists, even if the corresponding value
94 my($dir) = $self->dir;
102 Write access (with locking) should be implemented.
106 config.html from the base documentation contains a list of configuration files.
110 Ivan Kohler <ivan@sisd.com> 98-sep-6
112 sub exists forgot to fetch $dir ivan@sisd.com 98-sep-27
115 Revision 1.3 1999-03-29 01:29:33 ivan
116 die unless the configuration directory exists
118 Revision 1.2 1998/11/13 04:08:44 ivan
119 no default default_dir (ironic)