09808962dbde7615843eb49a907be3e96a7a4e31
[app-fonbot-daemon.git] / lib / App / FonBot / Plugin / Config.pm
1 package App::FonBot::Plugin::Config;
2
3 our $VERSION = '0.000_5';
4
5 use v5.14;
6 use strict;
7 use warnings;
8
9 use parent qw/Exporter/;
10
11 use Apache2::Authen::Passphrase;
12 use Log::Log4perl qw//;
13
14 our @EXPORT_OK=qw/$oftc_enabled $oftc_nick @oftc_channels $oftc_nickserv_password $bitlbee_enabled $bitlbee_nick $bitlbee_server $bitlbee_port $bitlbee_password $dir $user $group @supplementary_groups $httpd_port $email_batch_seconds $email_from $email_subject/;
15
16 ##################################################
17
18 our ($oftc_enabled, $oftc_nick, @oftc_channels, $oftc_nickserv_password);
19 our ($bitlbee_enabled, $bitlbee_nick, $bitlbee_server, $bitlbee_port, $bitlbee_password);
20 our ($dir, $user, $group, @supplementary_groups);
21 our ($httpd_port);
22 our ($email_batch_seconds, $email_from, $email_subject);
23
24 ##################################################
25
26 my $log=Log::Log4perl->get_logger(__PACKAGE__);
27
28 sub init{
29 $log->info('reading config file');
30 unless (my $ret = do '/etc/fonbotd/config.pl') {
31 die "Cannot parse config file: $@" if $@;
32 die "Cannot run config file: $!" unless $ret;
33 }
34 }
35
36 sub fini{
37 #no-op
38 }
39
40 1;
41
42 __END__
43
44 =encoding utf-8
45
46 =head1 NAME
47
48 App::FonBot::Plugin::Config - FonBot plugin for reading configuration files
49
50 =head1 SYNOPSIS
51
52 use App::FonBot::Plugin::Config qw/$oftc_enabled $oftc_nick @oftc_channels $oftc_nickserv_password $bitlbee_enabled $bitlbee_nick $bitlbee_server $bitlbee_port $bitlbee_password $user $group @supplementary_groups $httpd_port/;
53 App::FonBot::Plugin::Config->init;
54
55 # Variables used in App::FonBot:Plugin::OFTC
56 say "The OFTC plugin is ".($oftc_enabled ? 'enabled' : 'disabled');
57 say "The OFTC NickServ password is $oftc_nickserv_password";
58 say "The OFTC nickname is $oftc_nick";
59 say "The OFTC channels are @oftc_channels";
60
61 # Variables used in App::FonBot::Plugin::BitlBee
62 say "The BitlBee plugin is ".($bitlbee_enabled ? 'enabled' : 'disabled');
63 say "The BitlBee server runs on port $bitlbee_port of host $bitlbee_server"
64 say "The BitlBee nickname is $bitlbee_nick";
65 say "The BitlBee password is $bitlbee_password";
66
67 # Variables used in App::FonBot::Plugin::Common
68 say "The storage directory is $dir";
69 say "The user is $user";
70 say "The primary group is $group";
71 say "The supplementary groups are @supplementary_groups";
72
73 # Variables used in App::FonBot::Plugin::HTTPD
74 say "The HTTPD listens on port $httpd_port"
75
76 # Variables used in App::FonBot::Plugin::Email
77 say "The email batch delay is $email_batch_seconds";
78 say "The email plugin sends emails from $email_from";
79 say "The email plugin sends emails with subject $email_subject";
80
81 =head1 DESCRIPTION
82
83 This FonBot plugin reads a configuration file (hardcoded to F</etc/fonbot/config.pl>) and provides configuration variables to the other plugins. It is a required plugin, since all other plugins depend on it.
84
85 The configuration variables are described in detail in the plugins that use it.
86
87 =head1 METHODS
88
89 =over
90
91 =item C<App::FonBot::Plugin::Config-E<gt>init>
92
93 (Re-)reads the configuration file, populating the configuration variables. The configuration file is a regular perl script, hardcoded to F</etc/fonbot/config.pl>.
94
95 =item C<App::FonBot::Plugin::Config-E<gt>fini>
96
97 Currently a no-op. It is recommended to call this after finishing using this module, since it might do something in a future release.
98
99 =back
100
101 =head1 AUTHOR
102
103 Marius Gavrilescu C<< <marius@ieval.ro> >>
104
105 =head1 COPYRIGHT AND LICENSE
106
107 Copyright 2013 Marius Gavrilescu
108
109 This file is part of fonbotd.
110
111 fonbotd is free software: you can redistribute it and/or modify
112 it under the terms of the GNU Affero General Public License as published by
113 the Free Software Foundation, either version 3 of the License, or
114 (at your option) any later version.
115
116 fonbotd is distributed in the hope that it will be useful,
117 but WITHOUT ANY WARRANTY; without even the implied warranty of
118 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
119 GNU Affero General Public License for more details.
120
121 You should have received a copy of the GNU Affero General Public License
122 along with fonbotd. If not, see <http://www.gnu.org/licenses/>
123
124
125 =cut
This page took 0.027979 seconds and 3 git commands to generate.