#!/usr/bin/perl
# -*- cperl -*-
# -----------------------------------------------------------------------------
# $Id: celaenito,v 1.1.1.1 2004/09/27 14:01:00 admin Exp $
# -----------------------------------------------------------------------------
# .:Celaenito:.                                                   .:Celaenito:.
#
#                          Web Archive for the World
#
# .:Celaenito:.                                                   .:Celaenito:.
# -----------------------------------------------------------------------------
require 5.008;
use strict;
use warnings;

BEGIN {
    print ".:Celaenito:. loading bunch of modules...\n";
}

use lib qw(classes);

BEGIN {
    eval {
	require Crypt::SSLeay;
    };
    if ($@) {
	print "[Recommendation]\n";
	print "    You can make me get data via https if you install Crypt::SSLeay.\n"
    }
}

sub POE::Kernel::ASSERT_DEFAULT () { 1 }
#sub POE::Kernel::TRACE_DEFAULT () { 1 }
use POE;
use Celaenito::HyperEstraier;
use Celaenito::Logger;
use Celaenito::Httpd;
use Celaenito::JobQueueManager;
use Celaenito::IndexerManager;
use Celaenito::DbOptimizer;
use Encode;
use Encode::Alias;

define_alias qr/^shift.*jis$/i => '"cp932"';
define_alias qr/^(x-)?sjis(-jp)?$/i  => '"cp932"';

# Loggerを開始
Celaenito::Logger->run;

# JobQueueManagerを開始
Celaenito::JobQueueManager->run;

# IndexerManager を開始
Celaenito::IndexerManager->run;

# DbOptimizer を開始
Celaenito::DbOptimizer->run;

# httpdを開始
Celaenito::Httpd->run;

if (grep {/^--debug$/} @ARGV) {
    eval qq{
	use POE::Component::DebugShell;
	POE::Component::DebugShell->spawn;
    };
}

$poe_kernel->run;
exit;
