use strict;
use warnings;
-use base qw/Class::Accessor::Fast/;
+use Moose;
use NDWeb::Auth::User;
our $VERSION= "0.104";
-BEGIN {
- #__PACKAGE__->mk_accessors(qw/config/);
-}
-
sub setup {
my $c = shift;
-Subproject commit 143528bffc63de7c3c3edd5ccdeec04b6871b452
+Subproject commit 6987c1cc86ec91f7d3bf7d46b8745e89d31a5772
use strict;
use warnings;
-use Catalyst::Runtime '5.70';
+use Catalyst::Runtime 5.80;
# Set flags and add plugins for the application
#
# -Debug: activates the debug mode for very useful log messages
-# ConfigLoader: will load the configuration from a YAML file in the
+# ConfigLoader: will load the configuration from a Config::General file in the
# application's home directory
-# Static::Simple: will serve static files from the application's root
+# Static::Simple: will serve static files from the application's root
# directory
use parent qw/Catalyst/;
+use Catalyst qw/
+ -Debug
+ ConfigLoader
+ Static::Simple
+ Unicode
+
+ Authentication
+ Authentication::Store::NDWeb
+ Authentication::Credential::Password
+
+ Authorization::Roles
+ Authorization::ACL
+
+ Session::DynamicExpiry
+ Session
+ Session::Store::File
+ Session::State::Cookie
+
+ Compress::Gzip
+ Compress::Deflate
+
+ Cache
+ PageCache
+/;
our $VERSION = '0.01';
-# Configure the application.
+# Configure the application.
#
# Note that settings in ndweb.yml (or other external
# configuration file that you set up manually) take precedence
# over this when using ConfigLoader. Thus configuration
# details given here can function as a default configuration,
-# with a external configuration file acting as an override for
+# with an external configuration file acting as an override for
# local deployment.
__PACKAGE__->config( name => 'NDWeb' );
__PACKAGE__->config( default_model => 'Model');
# Start the application
-__PACKAGE__->setup(qw/
- -Debug
- ConfigLoader
- Static::Simple
- Unicode
-
- Authentication
- Authentication::Store::NDWeb
- Authentication::Credential::Password
-
- Authorization::Roles
- Authorization::ACL
-
- Session::DynamicExpiry
- Session
- Session::Store::File
- Session::State::Cookie
-
- Compress::Gzip
- Compress::Deflate
-
- Cache
- PageCache
- /);
-
+__PACKAGE__->setup();
__PACKAGE__->deny_access_unless('/users',[qw/admin_users/]);
__PACKAGE__->deny_access_unless('/alliances',[qw/alliances/]);
=head1 LICENSE
-This library is free software, you can redistribute it and/or modify
+This library is free software. You can redistribute it and/or modify
it under the same terms as Perl itself.
=cut
use strict;
use warnings;
use Data::Dumper;
-use base qw/Catalyst::Authentication::User/;
-use base qw/Class::Accessor::Fast/;
+use base qw/Class::Accessor::Fast Catalyst::Authentication::User/;
BEGIN {
__PACKAGE__->mk_accessors(qw//);
-#!/usr/bin/perl -w
+#!/usr/bin/env perl
use strict;
use warnings;
use Getopt::Long;
use Pod::Usage;
-use Catalyst::Helper;
+eval "use Catalyst::Helper;";
+
+if ($@) {
+ die <<END;
+To use the Catalyst development tools including catalyst.pl and the
+generated script/myapp_create.pl you need Catalyst::Helper, which is
+part of the Catalyst-Devel distribution. Please install this via a
+vendor package or by running one of -
+
+ perl -MCPAN -e 'install Catalyst::Devel'
+ perl -MCPANPLUS -e 'install Catalyst::Devel'
+END
+}
my $force = 0;
my $mech = 0;
Examples:
ndweb_create.pl controller My::Controller
- ndweb_create.pl controller My::Controller BindLex
ndweb_create.pl -mechanize controller My::Controller
ndweb_create.pl view My::View
ndweb_create.pl view MyView TT
to be created already exist the file will be written with a '.new' suffix.
This behavior can be suppressed with the C<-force> option.
-=head1 AUTHOR
+=head1 AUTHORS
-Sebastian Riedel, C<sri@oook.de>
-Maintained by the Catalyst Core Team.
+Catalyst Contributors, see Catalyst.pm
=head1 COPYRIGHT
-This library is free software, you can redistribute it and/or modify
+This library is free software. You can redistribute it and/or modify
it under the same terms as Perl itself.
=cut
-#!/usr/bin/perl -w
+#!/usr/bin/env perl
BEGIN { $ENV{CATALYST_ENGINE} ||= 'FastCGI' }
my $help = 0;
my ( $listen, $nproc, $pidfile, $manager, $detach, $keep_stderr );
-
+
GetOptions(
'help|?' => \$help,
'listen|l=s' => \$listen,
pod2usage(1) if $help;
-NDWeb->run(
- $listen,
+NDWeb->run(
+ $listen,
{ nproc => $nproc,
- pidfile => $pidfile,
+ pidfile => $pidfile,
manager => $manager,
detach => $detach,
- keep_stderr => $keep_stderr,
+ keep_stderr => $keep_stderr,
}
);
=head1 SYNOPSIS
ndweb_fastcgi.pl [options]
-
+
Options:
-? -help display this help and exits
-l -listen Socket path to listen on
Run a Catalyst application as fastcgi.
-=head1 AUTHOR
+=head1 AUTHORS
-Sebastian Riedel, C<sri@oook.de>
-Maintained by the Catalyst Core Team.
+Catalyst Contributors, see Catalyst.pm
=head1 COPYRIGHT
-This library is free software, you can redistribute it and/or modify
+This library is free software. You can redistribute it and/or modify
it under the same terms as Perl itself.
=cut
-#!/usr/bin/perl -w
+#!/usr/bin/env perl
-BEGIN {
+BEGIN {
$ENV{CATALYST_ENGINE} ||= 'HTTP';
- $ENV{CATALYST_SCRIPT_GEN} = 31;
+ $ENV{CATALYST_SCRIPT_GEN} = 38;
require Catalyst::Engine::HTTP;
-}
+}
use strict;
use warnings;
my $port = $ENV{NDWEB_PORT} || $ENV{CATALYST_PORT} || 3000;
my $keepalive = 0;
my $restart = $ENV{NDWEB_RELOAD} || $ENV{CATALYST_RELOAD} || 0;
-my $restart_delay = 1;
-my $restart_regex = '(?:/|^)(?!\.#).+(?:\.yml$|\.yaml$|\.pm)$';
-my $restart_directory = undef;
-my $follow_symlinks = 0;
+my $background = 0;
+my $pidfile = undef;
+
+my $check_interval;
+my $file_regex;
+my $watch_directory;
+my $follow_symlinks;
my @argv = @ARGV;
GetOptions(
'debug|d' => \$debug,
- 'fork' => \$fork,
+ 'fork|f' => \$fork,
'help|?' => \$help,
'host=s' => \$host,
- 'port=s' => \$port,
+ 'port|p=s' => \$port,
'keepalive|k' => \$keepalive,
'restart|r' => \$restart,
- 'restartdelay|rd=s' => \$restart_delay,
- 'restartregex|rr=s' => \$restart_regex,
- 'restartdirectory=s@' => \$restart_directory,
+ 'restartdelay|rd=s' => \$check_interval,
+ 'restartregex|rr=s' => \$file_regex,
+ 'restartdirectory=s@' => \$watch_directory,
'followsymlinks' => \$follow_symlinks,
+ 'background' => \$background,
+ 'pidfile=s' => \$pidfile,
);
pod2usage(1) if $help;
-if ( $restart && $ENV{CATALYST_ENGINE} eq 'HTTP' ) {
- $ENV{CATALYST_ENGINE} = 'HTTP::Restarter';
-}
if ( $debug ) {
$ENV{CATALYST_DEBUG} = 1;
}
-# This is require instead of use so that the above environment
-# variables can be set at runtime.
-require NDWeb;
-
-NDWeb->run( $port, $host, {
- argv => \@argv,
- 'fork' => $fork,
- keepalive => $keepalive,
- restart => $restart,
- restart_delay => $restart_delay,
- restart_regex => qr/$restart_regex/,
- restart_directory => $restart_directory,
- follow_symlinks => $follow_symlinks,
-} );
+# If we load this here, then in the case of a restarter, it does not
+# need to be reloaded for each restart.
+require Catalyst;
+
+# If this isn't done, then the Catalyst::Devel tests for the restarter
+# fail.
+$| = 1 if $ENV{HARNESS_ACTIVE};
+
+my $runner = sub {
+ # This is require instead of use so that the above environment
+ # variables can be set at runtime.
+ require NDWeb;
+
+ NDWeb->run(
+ $port, $host,
+ {
+ argv => \@argv,
+ 'fork' => $fork,
+ keepalive => $keepalive,
+ background => $background,
+ pidfile => $pidfile,
+ }
+ );
+};
+
+if ( $restart ) {
+ die "Cannot run in the background and also watch for changed files.\n"
+ if $background;
+
+ require Catalyst::Restarter;
+
+ my $subclass = Catalyst::Restarter->pick_subclass;
+
+ my %args;
+ $args{follow_symlinks} = 1
+ if $follow_symlinks;
+ $args{directories} = $watch_directory
+ if defined $watch_directory;
+ $args{sleep_interval} = $check_interval
+ if defined $check_interval;
+ $args{filter} = qr/$file_regex/
+ if defined $file_regex;
+
+ my $restarter = $subclass->new(
+ %args,
+ start_sub => $runner,
+ );
+
+ $restarter->run_and_watch;
+}
+else {
+ $runner->();
+}
1;
-r -restart restart when files get modified
(defaults to false)
-rd -restartdelay delay between file checks
+ (ignored if you have Linux::Inotify2 installed)
-rr -restartregex regex match files that trigger
a restart when modified
- (defaults to '\.yml$|\.yaml$|\.pm$')
+ (defaults to '\.yml$|\.yaml$|\.conf|\.pm$')
-restartdirectory the directory to search for
modified files, can be set mulitple times
(defaults to '[SCRIPT_DIR]/..')
-follow_symlinks follow symlinks in search directories
(defaults to false. this is a no-op on Win32)
+ -background run the process in the background
+ -pidfile specify filename for pid file
+
See also:
perldoc Catalyst::Manual
perldoc Catalyst::Manual::Intro
Run a Catalyst Testserver for this application.
-=head1 AUTHOR
+=head1 AUTHORS
-Sebastian Riedel, C<sri@oook.de>
-Maintained by the Catalyst Core Team.
+Catalyst Contributors, see Catalyst.pm
=head1 COPYRIGHT
-This library is free software, you can redistribute it and/or modify
+This library is free software. You can redistribute it and/or modify
it under the same terms as Perl itself.
=cut
-#!/usr/bin/perl -w
+#!/usr/bin/env perl
use strict;
use warnings;
Run a Catalyst action from the command line.
-=head1 AUTHOR
+=head1 AUTHORS
-Sebastian Riedel, C<sri@oook.de>
-Maintained by the Catalyst Core Team.
+Catalyst Contributors, see Catalyst.pm
=head1 COPYRIGHT
-This library is free software, you can redistribute it and/or modify
+This library is free software. You can redistribute it and/or modify
it under the same terms as Perl itself.
=cut