1 |
dpavlin |
139 |
#!/usr/bin/perl |
2 |
|
|
|
3 |
|
|
use warnings; |
4 |
|
|
use strict; |
5 |
|
|
|
6 |
|
|
use lib 'lib'; |
7 |
|
|
|
8 |
|
|
use Jifty; |
9 |
|
|
use Data::Dump qw/dump/; |
10 |
|
|
use File::Find; |
11 |
|
|
use A3C::PHP; |
12 |
|
|
|
13 |
|
|
BEGIN { Jifty->new; }; |
14 |
|
|
Jifty->web->request(Jifty::Request->new); |
15 |
|
|
Jifty->web->response(Jifty::Response->new); |
16 |
|
|
|
17 |
|
|
my $config = Jifty->config->app('strix') or die "need strix config"; |
18 |
|
|
|
19 |
|
|
my $model = A3C::Model::StrixSite->new; |
20 |
|
|
|
21 |
|
|
my $total = 0; |
22 |
|
|
|
23 |
|
|
find({ no_chdir => 1, wanted => sub { |
24 |
|
|
my $path = $File::Find::name; |
25 |
|
|
return unless -f $_; |
26 |
|
|
warn "? $path\n"; |
27 |
|
|
return unless m/conf\.php$/; |
28 |
|
|
|
29 |
|
|
$path =~ m{/etc/([^/]+)/conf\.php$} or die "can't find site name in $path"; |
30 |
|
|
my $site = $1; |
31 |
|
|
|
32 |
|
|
my $data = A3C::PHP->parse_file( $path ); |
33 |
|
|
|
34 |
|
|
warn "# PHP = ", dump( $data ); |
35 |
|
|
$data->{site} = $site; |
36 |
|
|
|
37 |
|
|
my ($id,$msg) = $model->load_or_create( %$data ); |
38 |
|
|
warn "$id $site ", $msg || 'ADDED', "\n"; |
39 |
|
|
$total++ if $id; |
40 |
|
|
|
41 |
|
|
}}, $config->{dir} ); |
42 |
|
|
|
43 |
|
|
Jifty->log->info( "$total Strix sites imported" ); |