OSDN Git Service

Make HTML charset to variable $cf->web_charset\rMake irc charset to variable $cf-...
[keitairc/keitairc.git] / lib / Keitairc / Config.pm
1 # -*-perl-*-
2 # Keitairc::Config
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 $
5 #
6 # Copyright (c) 2008 Jun Morimoto <morimoto@mrmt.net>
7 # This program is covered by the GNU General Public License 2
8
9 package Keitairc::Config;
10 use AppConfig qw(:argcount);
11 use Cwd;
12 use strict;
13 use warnings;
14 our @ISA = qw(AppConfig);
15
16 ################################################################
17 sub new{
18         my ($class, $version, @argv) = @_;
19         my $me = $class->SUPER::new(
20                 {
21                         CASE => 1,
22                         GLOBAL => {
23                                 ARGCOUNT => ARGCOUNT_ONE,
24                         }
25                 },
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)
41                 );
42
43         # set default values
44         $me->version($version);
45         $me->irc_desc('keitairc');
46         $me->irc_port(6667);
47         $me->irc_charset('iso-2022-jp-1');
48         $me->web_port(8080);
49         $me->web_title('keitairc');
50         $me->web_lines(100);
51         $me->web_root('/');
52         $me->web_charset('shiftjis');
53         $me->ping_delay(30);
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);
65         $me->fontsize('+0');
66         $me->mobile_fontsize(-1);
67         $me->debug(0);
68
69         if(defined $argv[0]){
70                 unless(-r $argv[0]){
71                         ::log("Can't read $argv[0]");
72                         exit 1;
73                 }
74                 $me->file($argv[0]);
75                 shift(@argv);
76         }else{
77                 $me->file('/etc/keitairc');
78                 $me->file($ENV{HOME} . '/.keitairc');
79         }
80
81         $me->args(\@argv);
82
83
84         if(defined $me->show_newmsgonly()){
85                 ::log('show_newmsgonly has obsoleted from keitairc 2.0');
86         }
87
88         if(defined $me->web_username()){
89                 ::log('web_username has obsoleted from keitairc 2.0');
90         }
91
92         if(defined $me->use_cookie()){
93                 ::log('use_cookie has obsoleted from keitairc 2.0');
94         }
95
96         if(defined $me->au_pcsv()){
97                 ::log('au_pcsv has obsoleted from keitairc 2.0');
98         }
99
100         unless(length $me->irc_nick()){
101                 ::log_die('irc_nick does not specified');
102         }
103
104         unless(length $me->irc_username()){
105                 ::log_die('irc_username does not specified');
106         }
107
108         unless(length $me->irc_server()){
109                 ::log_die('irc_server does not specified');
110         }
111
112         unless(length $me->web_port()){
113                 ::log_die('web_port does not specified');
114         }
115
116         unless(length $me->web_host()){
117                 ::log_die('web_host does not specified');
118         }
119
120         unless(length $me->web_password()){
121                 ::log_die('web_password does not specified');
122         }
123
124         $me;
125 }
126
127 ################################################################
128 sub file{
129         my $me = shift;
130         my $file = shift;
131         if(-r $file){
132                 $me->SUPER::file($file);
133                 ::log("Loaded configuration file: $file");
134                 return;
135         }
136         ::log("$file does not exist");
137 }
138
139 1;