Ado
view release on metacpan or search on metacpan
lib/Ado/Build.pm view on Meta::CPAN
sub _process_custom_files {
my ($self, $etc_dir, $log_dir) = @_;
#make some files writable and/or readable only by the user that runs the application
my $ro = oct('0400');
my $rw = oct('0600');
for my $asset (
qw(ado.conf plugins/routes.conf plugins/auth.conf plugins/markdown_renderer.conf))
{
_chmod($ro, catfile($etc_dir, $asset));
}
_chmod($rw, catfile($etc_dir, 'ado.sqlite'));
#Make sure *log files are existing and empty
_empty_log_files($log_dir);
for my $asset (qw(development production)) {
_chmod($rw, catfile($log_dir, "$asset.log"));
}
return;
}
sub _chmod {
my ($mode, $file) = @_;
return chmod($mode, $file)
|| Carp::carp("Could not change mode for $file: $!");
}
sub ACTION_perltidy {
my $self = shift;
eval { require Perl::Tidy } || do {
$self->log_warn(
"Perl::Tidy is not installed$/" . "Please install it and rerun ./Build perltidy$/");
return;
};
lib/Ado/Sessions/File.pm view on Meta::CPAN
return $self->prepare_load($c, $session);
}
sub store {
my ($self, $c) = @_;
my ($id, $session) = $self->prepare_store($c);
my $value = b64_encode(Mojo::JSON::encode_json($session), '');
my $file = $self->absfile($id);
path($file)->spurt($value);
chmod(oct('0600'), $file);
return;
}
# TODO
sub cleanup {
# go to session dir
# find all ado.* files
# filter against file age where is older than session timeout
# unlink all old files
t/ado-build.t view on Meta::CPAN
$build->install_base($tempdir);
$build->create_build_script();
stdout_like(
sub { $build->dispatch('fakeinstall') },
qr{Installing $tempdir},
"fakeinstall in $tempdir ok"
);
stderr_like(
sub { Ado::Build::_chmod('0600', catfile($tempdir, 'log', 'development.log')) },
qr{Could not change mode for},
'chmod development.log to 0600 ok'
);
stdout_like(
sub { $build->dispatch('install') },
qr{Installing $tempdir},
"install in $tempdir ok"
);
stdout_like(
sub { $build->dispatch('fakeuninstall') },
( run in 0.267 second using v1.01-cache-2.11-cpan-496ff517765 )