The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/env perl

use strict;
use warnings FATAL => 'all';

use FindBin;
FindBin::again();
use Path::Class 'dir';

BEGIN {
  # stuff useful locations into @INC
  unshift @INC,
    dir($FindBin::RealBin)->parent->subdir('lib')->stringify,
    dir($FindBin::RealBin, 'lib')->stringify;
}

use App::Netdisco;
use Dancer;
debug sprintf "App::Netdisco %s", ($App::Netdisco::VERSION || 'HEAD');

my $home = ($ENV{NETDISCO_HOME} || $ENV{HOME});
set('session_dir', dir($home, 'netdisco-web-sessions'));

set plack_middlewares => [
  [ Expires => (
      content_type => [qw{ application/javascript text/css }, qr{image}],
      expires => 'access plus 1 day',
  )],
  [ Static => (
      path => qr{^/(?:javascripts|css|font|images)/},
      root => $ENV{DANCER_PUBLIC},
      pass_through => 1,
  )],
];

use App::Netdisco::Web;
use Plack::Builder;

my $app = sub {
  my $env     = shift;
  my $request = Dancer::Request->new(env => $env);
  Dancer->dance($request);
};

my $path = (setting('path') || '/');
builder { mount $path => $app };

=head1 NAME

netdisco-web-fg - Web Application for Netdisco

=head1 SEE ALSO

=over 4

=item *

L<App::Netdisco>

=back

=cut