evil hack to allow introspection of running server
[perl-cwmp.git] / bin / acs.pl
1 #!/usr/bin/perl -w
2
3 # acs.pl
4 #
5 # 06/18/07 09:19:54 CEST Dobrica Pavlinusic <dpavlin@rot13.org>
6
7 use strict;
8
9 use lib './lib';
10 use CWMP::Server;
11 use CWMP::Session;
12 use CWMP::Vendor;
13 use Getopt::Long;
14 use Data::Dump qw/dump/;
15 use File::Find;
16
17 #use Devel::LeakTrace::Fast;
18
19 my $port = 3333;
20 my $debug = 0;
21 my $store_path = './';
22 my $store_plugin = 'YAML';
23 my $create_dump = 1;
24
25 GetOptions(
26         'debug+' => \$debug,
27         'port=i' => \$port,
28         'store-path=s' => \$store_path,
29         'store-plugin=s' => \$store_plugin,
30         'create_dump!' => \$create_dump,
31 );
32
33 if ( $create_dump ) {
34         warn "## cleaning dump directory\n" if $debug;
35         find({
36                 wanted => sub {
37                         my $path = $File::Find::name;
38                         return if -d $path;
39                         unlink($path) || die "can't remove $path: $!";
40                         warn "## removed $path\n" if $debug;
41                 },
42                 no_chdir => 1,
43         }, 'dump/' );
44 }
45
46 my $server = CWMP::Server->new({
47         port => $port,
48         session => {
49                 store => {
50                         module => $store_plugin,
51                         path => $store_path,
52                         debug => $debug,
53                 },
54                 create_dump => $create_dump,
55         },
56         debug => $debug,
57 });
58
59 CWMP::Vendor->add_triggers;
60
61 $server->run();
62