diff options
Diffstat (limited to 'util/multi.pl')
-rw-r--r-- | util/multi.pl | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/util/multi.pl b/util/multi.pl index d45150fb..9a072d02 100644 --- a/util/multi.pl +++ b/util/multi.pl @@ -25,12 +25,6 @@ use DBI; use lib '/www/vndb/lib'; use Multi::Core; -use Multi::RG; -use Multi::Image; -use Multi::Sitemap; -use Multi::Anime; -use Multi::Maintenance; -use Multi::IRC; BEGIN { require 'global.pl' } @@ -50,20 +44,21 @@ if(grep /^-a$/, @ARGV) { exit; } - # one shared pgsql connection for all sessions our $SQL = DBI->connect(@VNDB::DBLOGIN, { PrintError => 1, RaiseError => 0, AutoCommit => 1, pg_enable_utf8 => 1 }); Multi::Core->spawn(); -Multi::RG->spawn(); -Multi::Image->spawn(); -Multi::Sitemap->spawn(); -Multi::Anime->spawn() if !$VNDB::DEBUG; # no need to update anime from the beta -Multi::Maintenance->spawn(); -Multi::IRC->spawn() if !$VNDB::DEBUG; +# dynamically load and spawn modules +for (0..(@$VNDB::MULTI/2+1)) { + my($mod, $args) = @{$VNDB::MULTI}[$_*2, $_*2+1]; + next if !$args || ref($args) ne 'HASH'; + require "Multi/$mod.pm"; + # I'm surprised the strict pagma isn't complaining about this + "Multi::$mod"->spawn(%$args); +} $SIG{__WARN__} = sub {(local$_=shift)=~s/\r?\n//;$poe_kernel->call(core=>log=>1,'__WARN__: '.$_)}; |