#!/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);