3 # $Id: Config.pm,v 1.15 2008-06-29 07:55:01 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;
10 use AppConfig qw(:argcount);
14 our @ISA = qw(AppConfig);
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 irc_keyword irc_charset
29 au_subscriber_id au_pcsv
30 docomo_foma_icc docomo_imodeid
31 softbank_serial_key emobile_userid
32 use_cookie cookie_ttl session_ttl
33 web_port web_title web_lines web_root
34 web_username web_password web_host web_charset
35 fontsize mobile_fontsize
36 show_newmsgonly show_joinleave show_console
37 ping_delay reconnect_delay
38 smtp_server smtp_from smtp_to debug
39 template_dir version daemonize pid_dir pid_file plugin_dir
40 reverse_message reverse_recent reverse_unread)
44 $me->version($version);
45 $me->irc_desc('keitairc');
47 $me->irc_charset('iso-2022-jp-1');
49 $me->web_title('keitairc');
52 $me->web_charset('shiftjis');
54 $me->reconnect_delay(10);
55 $me->cookie_ttl(86400 * 3); # 3 days
56 $me->session_ttl(60 * 30); # 30 min
57 $me->pid_dir('/var/run');
58 $me->pid_file('keitairc.pid');
59 $me->plugin_dir(getcwd() . '/lib/plugins:/usr/share/keitairc/lib/plugins');
60 $me->template_dir(getcwd() . '/lib/templates:/usr/share/keitairc/lib/templates');
61 $me->reverse_message(1);
62 $me->reverse_recent(1);
63 $me->reverse_unread(1);
64 $me->show_joinleave(1);
66 $me->mobile_fontsize(-1);
71 ::log("Can't read $argv[0]");
77 $me->file('/etc/keitairc');
78 $me->file($ENV{HOME} . '/.keitairc');
84 if(defined $me->show_newmsgonly()){
85 ::log('show_newmsgonly has obsoleted from keitairc 2.0');
88 if(defined $me->web_username()){
89 ::log('web_username has obsoleted from keitairc 2.0');
92 if(defined $me->use_cookie()){
93 ::log('use_cookie has obsoleted from keitairc 2.0');
96 if(defined $me->au_pcsv()){
97 ::log('au_pcsv has obsoleted from keitairc 2.0');
100 unless(length $me->irc_nick()){
101 ::log_die('irc_nick does not specified');
104 unless(length $me->irc_username()){
105 ::log_die('irc_username does not specified');
108 unless(length $me->irc_server()){
109 ::log_die('irc_server does not specified');
112 unless(length $me->web_port()){
113 ::log_die('web_port does not specified');
116 unless(length $me->web_host()){
117 ::log_die('web_host does not specified');
120 unless(length $me->web_password()){
121 ::log_die('web_password does not specified');
127 ################################################################
132 $me->SUPER::file($file);
133 ::log("Loaded configuration file: $file");
136 ::log("$file does not exist");