summaryrefslogtreecommitdiff
path: root/kernel/xpp/XppConfig.pm
blob: 3c7f293e4309293f4a19a1e803038255f16b79e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package XppConfig;
#
# Written by Oron Peled <oron@actcom.co.il>
# Copyright (C) 2008, Xorcom
# This program is free software; you can redistribute and/or
# modify it under the same terms as Perl itself.
#
# $Id$
#
use strict;

my $conf_file = "/etc/xpp.conf";

sub import {
	my $pack = shift || die "Import without package?";
	my $init_dir = shift || die "$pack::import -- missing init_dir parameter";
	my $local_conf = "$init_dir/xpp.conf";
	$conf_file = $local_conf if -r $local_conf;
}

sub read_config($) {
	my $opts = shift || die;

	open(F, $conf_file) || return ();
	while(<F>) {
		chomp;
		s/#.*//;	# strip comments
		next unless /\S/;
		s/\s*$//;	# Trim trailing whitespace
		my ($key, $value) = split(/\s+/, $_, 2);
		$opts->{$key} = $value;
	}
	close F;
	$opts->{'xppconf'} = $conf_file;
	return %{$opts};
}

1;