App-Padadoy
view release on metacpan or search on metacpan
lib/App/Padadoy.pm view on Meta::CPAN
$self->{base} = $values{base} // cwd;
}
foreach (@configs) {
$yaml->{$_} = $values{$_} if defined $values{$_};
}
$self->{user} = $yaml->{user} || getlogin || getpwuid($<);
$self->{repository} = $yaml->{repository} || catdir($self->{base},'repository');
$self->{port} = $yaml->{port} || 6000;
$self->{pidfile} = $yaml->{pidfile} || catfile($self->{base},'starman.pid');
$self->{remote} = $yaml->{remote};
# config file
$self->{config} = $config;
# TODO: validate config values
fail "Invalid remote value: ".$self->{remote}
if $self->{remote} and $self->{remote} !~ qr{^[^@]+@[^:]+:[~/].*$};
lib/App/Padadoy.pm view on Meta::CPAN
my $self = shift;
Dump( { map { $_ => $self->{$_} // '' } @configs } );
}
sub restart {
my $self = shift;
my $pid = $self->_pid;
if ($pid) {
$self->msg("Gracefully restarting starman as deamon on port %d (pid in %s)",
$self->{port}, $self->{pidfile});
run('kill','-HUP',$pid);
} else {
$self->start;
}
}
sub start {
my $self = shift;
lib/App/Padadoy.pm view on Meta::CPAN
# make sure log files exist
my $logs = catdir($self->{base},'logs');
make_path($logs) unless -d $logs;
foreach ( grep { ! -e $_ }
map { catfile($logs,$_) } qw(error.log access.log) ) {
open (my $fh, '>>', $_);
close $fh;
}
$self->msg("Starting starman as deamon on port %d (pid in %s)",
$self->{port}, $self->{pidfile});
# TODO: refactor after release of carton 1.0
$ENV{PLACK_ENV} = 'production';
my @opt = (
'starman','--port' => $self->{port},
'-D','--pid' => $self->{pidfile},
'--error-log' => catfile($logs,'error.log'),
'--access-log' => catfile($logs,'access.log'),
);
run('carton','exec','-Ilib','--',@opt);
}
sub stop {
my $self = shift;
lib/App/Padadoy.pm view on Meta::CPAN
=head2 config
Show configuration values.
=head2 restart
Start or gracefully restart the application if running.
=head2 start
Start starman webserver with carton.
=head2 stop
Stop starman webserver.
=head2 status
Show some status information.
=head2 checkout ( [$revision], [$directory], [$current] )
Check out a revision to a new working directory. If no directory name is
specified, the revision name will be concatenated to the base directory.
If a current directory is specified, the C<local> directory will first be
( run in 1.781 second using v1.01-cache-2.11-cpan-e93a5daba3e )