3 # $Id: Config.pm,v 1.3 2008-01-13 12:12:55 morimoto Exp $
4 # $Source: /home/ishikawa/work/keitairc/tmp/keitairc/lib/Keitairc/Config.pm,v $
6 # Copyright (c) 2008 Jun Morimoto <morimoto@mrmt.net>
7 # This program is covered by the GNU General Public License 2
9 package Keitairc::Config;
11 use AppConfig qw(:argcount);
16 ################################################################
18 my ($class, $version, @argv) = @_;
19 my $me = $class->SUPER::new(
23 ARGCOUNT => ARGCOUNT_ONE,
26 qw(irc_nick irc_username irc_desc
27 irc_server irc_port irc_password
28 au_subscriber_id au_pcsv
30 use_cookie cookie_ttl session_ttl
31 web_port web_title web_lines web_root
32 web_username web_password web_host
33 show_newmsgonly ping_delay reconnect_delay
34 smtp_server smtp_from smtp_to
35 template_dir version daemonize pid_dir plugin_dir)
39 $me->version($version);
40 $me->irc_desc('keitairc');
43 $me->reconnect_delay(10);
44 $me->cookie_ttl(86400 * 3); # 3 days
45 $me->session_ttl(60 * 30); # 30 min
46 $me->pid_dir('/var/run');
47 $me->plugin_dir(getcwd() . '/lib/plugins:/usr/share/keitairc/lib/plugins');
48 $me->template_dir(getcwd() . '/lib/templates:/usr/share/keitairc/lib/templates');
52 ::log("Can't read $argv[0]");
58 $me->file('/etc/keitairc');
59 $me->file($ENV{HOME} . '/.keitairc');
64 if(defined $me->web_username()){
65 ::log("web_username has obsoleted from keitairc 2.0");
68 if(defined $me->use_cookie()){
69 ::log("use_cookie has obsoleted from keitairc 2.0");
72 if(defined $me->web_root()){
73 ::log("web_root has obsoleted from keitairc 2.0");
76 if(defined $me->au_pcsv()){
77 ::log("au_pcsv has obsoleted from keitairc 2.0");
80 unless(length $me->irc_nick()){
81 ::log_die("irc_nick does not specified");
84 unless(length $me->irc_username()){
85 ::log_die("irc_username does not specified");
88 unless(length $me->irc_server()){
89 ::log_die("irc_server does not specified");
92 unless(length $me->web_port()){
93 ::log_die("web_port does not specified");
96 unless(length $me->web_host()){
97 ::log_die("web_host does not specified");
100 unless(length $me->web_password()){
101 ::log_die("web_password does not specified");
107 ################################################################
112 $me->SUPER::file($file);
113 ::log("Loaded configuration file: $file");
116 ::log("$file does not exist");