#!/usr/bin/perl
use strict;
use warnings;
use IO::Async::Loop;
use EntityModel;
use EntityModel::Web;
use EntityModel::Web::NaFastCGI;
my $loop = IO::Async::Loop->new;
my $model = EntityModel->new->add_plugin(Web => {
})->load_from(JSON => {
file => $ENV{ENTITYMODEL_JSON_MODEL}
})->add_storage(PostgreSQL => {
schema => $ENV{ENTITYMODEL_PG_SCHEMA},
user => $ENV{ENTITYMODEL_PG_USER},
password => $ENV{ENTITYMODEL_PG_PASSWORD},
host => $ENV{ENTITYMODEL_PG_HOST},
})->add_support(Perl => {
});
my $tmpl = EntityModel::Template->new(
include_path => $ENV{ENTITYMODEL_TEMPLATE_PATH}
);
$tmpl->process_template(\qq{[% PROCESS $ENV{ENTITYMODEL_TEMPLATE_MAIN} %]}) if $ENV{ENTITYMODEL_TEMPLATE_MAIN};
my $fcgi = EntityModel::Web::NaFastCGI->new(
model => $model,
context_args => [
template => $tmpl,
],
show_timing => 1,
);
$loop->add($fcgi);
$fcgi->listen(
service => 9738,
on_listen_error => sub { die "Listen failed: @_"; },
on_resolve_error => sub { die "Resolve failed: @_"; }
);
warn "Starting up\n";
$loop->loop_forever;