use 5.10.1; use strict; use warnings; # ABSTRACT: Example application # AUTHORITY # PODNAME: dbic-schema-viewer our $VERSION = '0.0200'; use Mojolicious::Lite; use File::HomeDir; use Path::Tiny; use syntax 'qi'; use String::Stomp; use String::Random; my $confdir = path(File::HomeDir->my_dist_data('Mojolicious-Plugin-DbicSchemaViewer', { create => 1 })); my $logdir = $confdir->child('log'); $logdir->mkpath; app->log->path($logdir->child('dbic-schema-viewer.log')->stringify); my $exists = $confdir->exists && $confdir->is_dir ? 1 : 0; app->log->debug("[dbic-schema-viewer] Looking for config in $confdir/dbic-schema-viewer.conf ..."); my $confile = $confdir->child('dbic-schema-viewer.conf'); app->log->path('log'); # setup config file if it doesn't exist if(!$confile->exists) { app->log->debug('[dbic-schema-viewer] Setting up config file at ' . $confile->stringify); my $secret = String::Random->new->randregex('[a-z0-9_]{20,20}'); $confile->spew(stomp qi! { dbic_schema_viewer => { # allowed_schemas => [qw//], # router => ..., # condition => ... # url => 'dbic-schema-viewer', }, secrets => [qw/! . $secret . qi!/], };!); } plugin 'Config', { file => $confdir->child('dbic-schema-viewer.conf')->stringify }; if(exists app->config->{'secrets'}) { app->secrets(app->config->{'secrets'}); } app->config->{'dbic-schema-viewer'}{'url'} = '/' if !exists app->config->{'dbic-schema-viewer'}{'url'}; plugin 'DbicSchemaViewer', app->config->{'dbic_schema_viewer'}; app->start; __END__ =pod =encoding utf-8 =head1 NAME dbic-schema-viewer - Example application =head1 VERSION Version 0.0200, released 2016-09-20. =head1 SYNOPSIS hypnotoad dbic-schema-viewer =head1 DESCRIPTION This is a small application that uses the L. A configuration file will be generated at first run. It is this application that runs the L. =head1 SOURCE L =head1 HOMEPAGE L =head1 AUTHOR Erik Carlsson =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2016 by Erik Carlsson. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut