Luc Didry 91e078
package Mounter;
Luc Didry 91e078
use Mojo::Base 'Mojolicious';
Luc Didry 91e078
use FindBin qw($Bin);
Luc Didry 91e078
use File::Spec qw(catfile);
Luc Didry 91e078
Luc Didry 91e078
# This method will run once at server start
Luc Didry 91e078
sub startup {
Luc Didry 91e078
    my $self = shift;
Luc Didry 91e078
Luc Didry 40deab
    push @{$self->commands->namespaces}, 'Lufi::Command';
Luc Didry 40deab
Luc Didry 91e078
    my $config = $self->plugin('Config' =>
Luc Didry 91e078
        {
Luc Didry 91e078
            file    => File::Spec->catfile($Bin, '..' ,'lufi.conf'),
Luc Didry 91e078
            default => {
Luc Didry adf0a4
                prefix => '/',
Luc Didry adf0a4
                theme  => 'default',
Luc Didry 91e078
            }
Luc Didry 91e078
        }
Luc Didry 91e078
    );
Luc Didry 91e078
Luc Didry 9c62d4
    # Helpers
Luc Didry 9c62d4
    $self->plugin('Lufi::Plugin::Helpers');
Luc Didry 9c62d4
Luc Didry adf0a4
    # Themes handling
Luc Didry adf0a4
    shift @{$self->static->paths};
Luc Didry adf0a4
    if ($config->{theme} ne 'default') {
juju4 da77eb
        my $theme = $self->home->rel_file('themes/'.$config->{theme});
Luc Didry adf0a4
        push @{$self->static->paths}, $theme.'/public' if -d $theme.'/public';
Luc Didry adf0a4
    }
juju4 da77eb
    push @{$self->static->paths}, $self->home->rel_file('themes/default/public');
Luc Didry adf0a4
Luc Didry 91e078
    $self->plugin('Mount' => {$config->{prefix} => File::Spec->catfile($Bin, '..', 'script', 'application')});
Luc Didry 91e078
}
Luc Didry 91e078
Luc Didry 91e078
1;