]>
Commit | Line | Data |
---|---|---|
1 | package App::FonBot::Plugin::Config; | |
2 | ||
3 | our $VERSION = '0.001'; | |
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-2015 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 |