1 |
#!/opt/perl/bin/perl |
2 |
use strict; |
3 |
use Event; |
4 |
use AnyEvent; |
5 |
use Net::Bummskraut::Server; |
6 |
use Net::Bummskraut::Scheme::IRC; |
7 |
use Net::Bummskraut::Scheme::XMPP; |
8 |
use Net::Bummskraut::Scheme::XMPP::GUI; |
9 |
use Net::Bummskraut::Scheme::Config; |
10 |
use Net::Bummskraut::GUI; |
11 |
use Getopt::Long; |
12 |
use POSIX qw/strftime/; |
13 |
|
14 |
our $VERSION = '0.9'; |
15 |
|
16 |
my $PORT = 16100; |
17 |
my $CFG_FILE = $ENV{HOME} . "/.bummskraut_rc"; |
18 |
|
19 |
GetOptions ( |
20 |
"conf=s" => \$CFG_FILE, |
21 |
"port=i" => \$PORT, |
22 |
"version" => sub { |
23 |
warn "bummskraut_server - bummskraut backend server version $VERSION\n"; |
24 |
exit; |
25 |
}, |
26 |
"help" => sub { |
27 |
warn "bummskraut_server [<options>]\n" |
28 |
."-c <configfile> (default configfile is ~/.bummskraut_rc)\n" |
29 |
."-p <port> (default port is 16100)\n"; |
30 |
exit; |
31 |
}, |
32 |
); |
33 |
|
34 |
my $c = AnyEvent->condvar; |
35 |
|
36 |
our $GUI = Net::Bummskraut::GUI->new (port => $PORT + 1); |
37 |
my $JS = Net::Bummskraut::Server->new ( |
38 |
cfg_path => $CFG_FILE, port => $PORT |
39 |
); |
40 |
my $irc = Net::Bummskraut::Scheme::IRC->new (server => $JS); |
41 |
my $xmpp = Net::Bummskraut::Scheme::XMPP->new (server => $JS); |
42 |
my $cfg = Net::Bummskraut::Scheme::Config->new (server => $JS); |
43 |
|
44 |
$JS->print_auth_key; |
45 |
$GUI->start; |
46 |
$c->wait; |