OSDN Git Service

mail uri, phone no, url to user
[keitairc/keitairc.git] / lib / Keitairc / Config.pm
1 # -*-perl-*-
2 # Keitairc::Config
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 $
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 strict;
11 use AppConfig qw(:argcount);
12 use Cwd;
13 use vars qw(@ISA);
14 @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                    au_subscriber_id au_pcsv
29                    docomo_foma_icc
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)
36                 );
37
38         # set default values
39         $me->version($version);
40         $me->irc_desc('keitairc');
41         $me->irc_port(6667);
42         $me->ping_delay(30);
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');
49
50         if(defined $argv[0]){
51                 unless(-e $argv[0]){
52                         ::log("Can't read $argv[0]");
53                         exit 1;
54                 }
55                 $me->file($argv[0]);
56                 shift(@argv);
57         }else{
58                 $me->file('/etc/keitairc');
59                 $me->file($ENV{HOME} . '/.keitairc');
60         }
61
62         $me->args(\@argv);
63
64         if(defined $me->web_username()){
65                 ::log("web_username has obsoleted from keitairc 2.0");
66         }
67
68         if(defined $me->use_cookie()){
69                 ::log("use_cookie has obsoleted from keitairc 2.0");
70         }
71
72         if(defined $me->web_root()){
73                 ::log("web_root has obsoleted from keitairc 2.0");
74         }
75
76         if(defined $me->au_pcsv()){
77                 ::log("au_pcsv has obsoleted from keitairc 2.0");
78         }
79
80         unless(length $me->irc_nick()){
81                 ::log_die("irc_nick does not specified");
82         }
83
84         unless(length $me->irc_username()){
85                 ::log_die("irc_username does not specified");
86         }
87
88         unless(length $me->irc_server()){
89                 ::log_die("irc_server does not specified");
90         }
91
92         unless(length $me->web_port()){
93                 ::log_die("web_port does not specified");
94         }
95
96         unless(length $me->web_host()){
97                 ::log_die("web_host does not specified");
98         }
99
100         unless(length $me->web_password()){
101                 ::log_die("web_password does not specified");
102         }
103
104         $me;
105 }
106
107 ################################################################
108 sub file{
109         my $me = shift;
110         my $file = shift;
111         if(-e $file){
112                 $me->SUPER::file($file);
113                 ::log("Loaded configuration file: $file");
114                 return;
115         }
116         ::log("$file does not exist");
117 }
118
119 1;