#!/usr/bin/perl -w
use strict;

use FindBin;
use lib "$FindBin::RealBin/lib";

use Getopt::Long;
use YAML;
use Plack::Runner;
use BookmarksApp;
use File::Spec::Functions qw{catfile};

GetOptions(
    'file=s' => \my $CONFIG_FILE,
);

$CONFIG_FILE ||= 'server.yml';
-e $CONFIG_FILE or die "Config file $CONFIG_FILE not found\n";
my $config = YAML::LoadFile($CONFIG_FILE);
my $app = BookmarksApp->new({ config => $config })->to_app;

my $server_root = $config->{server_root} || '.';
my $listen      = ':' . ($config->{port} || 5000);
my $access_log  = catfile($server_root, 'access');
my $error_log   = catfile($server_root, 'errors');
my $pid_file    = catfile($server_root, 'pid');

my $runner = Plack::Runner->new(server => 'Starman');
$runner->parse_options(
    '--daemonize',
    '--listen',     $listen,
    '--pid',        $pid_file,
    '--error-log',  $error_log,
    '--access-log', $access_log,
);
$runner->run($app);
