1 package Collectd::Graph::Config;
5 Collectd::Graph::Config - Parse the collection3 config file.
9 # Copyright (C) 2008,2009 Florian octo Forster <octo at verplant.org>
11 # This program is free software; you can redistribute it and/or modify it under
12 # the terms of the GNU General Public License as published by the Free Software
13 # Foundation; only version 2 of the License is applicable.
15 # This program is distributed in the hope that it will be useful, but WITHOUT
16 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
17 # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
20 # You should have received a copy of the GNU General Public License along with
21 # this program; if not, write to the Free Software Foundation, Inc.,
22 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
27 use Carp (qw(cluck confess));
29 use Config::General ('ParseConfig');
31 @Collectd::Graph::Config::ISA = ('Exporter');
32 @Collectd::Graph::Config::EXPORT_OK = (qw(gc_read_config gc_get_config
35 our $Configuration = undef;
39 =head1 EXPORTED FUNCTIONS
43 =item B<gc_read_config> (I<$file>)
45 Reads the configuration from the file located at I<$file>. Returns B<true> when
46 successful and B<false> otherwise.
60 $file ||= "etc/collection.conf";
62 %conf = ParseConfig (-ConfigFile => $file,
64 -UseApacheInclude => 1,
65 -IncludeDirectories => 1,
66 ($Config::General::VERSION >= 2.38) ? (-IncludeAgain => 0) : (),
67 -MergeDuplicateBlocks => 1,
74 $Configuration = \%conf;
78 =item B<gc_get_config> ()
80 Returns the hash as provided by L<Config::General>. The hash is returned as a
81 hash reference. Don't change it!
87 return ($Configuration);
90 =item B<gc_get_config> (I<$key>, [I<$default>])
92 Returns the scalar value I<$key> from the config file. If the key does not
93 exist, I<$default> will be returned. If no default is given, B<undef> will be
101 my $default = (@_ != 0) ? shift : undef;
109 $value = $Configuration->{lc ($key)};
110 if (!defined ($value))
115 if (ref ($value) ne '')
117 cluck ("Value for `$key' should be scalar, but actually is "
133 L<Collectd::Graph::Type>
135 =head1 AUTHOR AND LICENSE
137 Copyright (c) 2008 by Florian Forster
138 E<lt>octoE<nbsp>atE<nbsp>verplant.orgE<gt>. Licensed under the terms of the GNU
139 General Public License, VersionE<nbsp>2 (GPLv2).
143 # vim: set shiftwidth=2 softtabstop=2 tabstop=8 et fdm=marker :