pricecharts

track prices of consumer electronics
Log | Files | Refs | README

Config.pm (707B)


      1 package PS::Config;
      2 
      3 use Config::Grammar;
      4 
      5 sub new {
      6 	my $class = shift;
      7 	my $self = {};
      8 	bless ($self, $class);
      9 
     10 	my $parser = Config::Grammar->new({
     11 		_sections => [ "general", "http" ],
     12 		general => {
     13 			_vars => [
     14 				"agent",
     15 				"email",
     16 				"smtp",
     17 				# XXX: add simple regex validation here
     18 				"addrs",
     19 				"db_dir",
     20 				"log_dir",
     21 			],
     22 		},
     23 		http => {
     24 			_vars => [
     25 				"socket",
     26 				"uid",
     27 				"gid",
     28 				"chroot",
     29 				"htdocs",
     30 			],
     31 		},
     32 	});
     33 
     34 	my $cfg_file = "/etc/pricesloth.cfg";
     35 	if (-e "etc/pricesloth.cfg") {
     36 		$cfg_file = "etc/pricesloth.cfg";
     37 	}
     38 	$self->{cfg} = $parser->parse($cfg_file) or die "error: $parser->{err}\n";
     39 
     40 	return $self;
     41 }
     42 
     43 sub get_cfg {
     44 	return $self->{cfg};
     45 }
     46 
     47 1;