#!/usr/bin/env perl

use warnings;
use strict;

use Getopt::Long;
use File::Find::Rule;
use File::Spec;
use File::Basename 'dirname';
use lib File::Spec->rel2abs( File::Spec->catdir( dirname(__FILE__), File::Spec->updir, 'lib' ) );
use Treex::PML;

use PMLTQ::Suggest::Server;

my $port = 8071;
my $host = 'localhost';
my $prefork = 0;
my @resources_path = ();
my $resources_paths_follow = 0;
GetOptions(
  '--port=i' => \$port,
  '--host=s' => \$host,
  '--prefork=i' => \$prefork,
  '--resources-path=s{,}' => \@resources_path,
  '--resources-path-follow' => \$resources_paths_follow
  );

my $inputenc = "UTF-8";

start_server();

sub start_server {
  my $server = PMLTQ::Suggest::Server->new($port);
  $server->host($host);
  $server->prefork($prefork);
  for my $res_path (@resources_path) {
    if($res_path && (-d $res_path)){
      my @resources = File::Find::Rule->directory->name('resources')->extras({follow => $resources_paths_follow})->in( $res_path );
      print STDERR '['.localtime()."] resources: ". join('|',@resources)."\n";
      Treex::PML::SetResourcePaths(@resources);
    }
  }
  $server->run();
}
