#!/usr/bin/perl
# ************************************************************************* 
# Copyright (c) 2014, SUSE LLC
# 
# All rights reserved.
# 
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# 
# 1. Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# 
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# 
# 3. Neither the name of SUSE LLC nor the names of its contributors may be
# used to endorse or promote products derived from this software without
# specific prior written permission.
# 
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
# ************************************************************************* 
#
# App::Dochazka::REST server executable
#
# -------------------------------------------------------------------------

use 5.014;
use strict;
use warnings;

use App::CELL qw( $site );
use App::Dochazka::REST;
use Data::Dumper;
use Plack::Builder;
use Plack::Runner;
 
=head1 NAME

dochazka-rest - App::Dochazka::REST server startup script



=head1 VERSION

Version 0.262

=cut

our $VERSION = '0.262';



=head1 SYNOPSIS

    $ dochazka-rest



=head1 DESCRIPTION

Run this script from the bash prompt to start the server.

=cut

print "App::Dochazka::REST ver. $VERSION\n";
print "Initializing and connecting to database\n";
my $REST = App::Dochazka::REST->init( sitedir => '/etc/dochazka-rest', debug_mode => 1 );
my $status = $REST->{init_status};
print $status->text unless $status->ok;
print "Log messages will be written to " . $site->DOCHAZKA_REST_LOG_FILE .  "\n";
print "Starting server\n";

my $app = $REST->{'app'};

my $runner = Plack::Runner->new;

# FIXME: parse @ARGV looking for 'host' and 'port' - if both are present, fine.
# If only one is present, error exit. If neither are present, default to
# DOCHAZKA_HOST and DOCHAZKA_PORT

$runner->parse_options(@ARGV);
#my %options = @{ $runner->{'options'} };
#print "Server host " . ( $options{'host'} || 'undef' ) . "\n";
#print "Server port " . ( $options{'port'} || 'undef' ) . "\n";

$runner->run( 
    builder {
        enable "StackTrace", force => 1;
        enable "Session";
        $app;
    }
);

