Group
Extension

HPC-Runner-Command/lib/HPC/Runner/Command/Logger/JSON.pm

package HPC::Runner::Command::Logger::JSON;

use MooseX::App::Role;
use MooseX::Types::Path::Tiny qw/File Path Paths AbsPath AbsFile/;
use File::Spec;
use Data::UUID;
use DateTime;
use File::Path qw(make_path remove_tree);
use HPC::Runner::Command::Logger::JSON::Archive;

with 'BioSAILs::Utils::Files::CacheDir';

option 'data_dir' => (
    is            => 'rw',
    isa           => AbsPath,
    lazy          => 1,
    coerce        => 1,
    required      => 1,
    documentation => q{Data directory for hpcrunner},
    predicate     => 'has_data_dir',
    default       => sub {
        my $self = shift;
        my $path = $self->create_data_dir;
        $ENV{HPC_DATA_DIR} = $path;
        return $path;
    },
    trigger => sub {
        my $self = shift;
        make_path( $self->data_dir );
        $ENV{HPC_DATA_DIR} = $self->data_dir->stringify;
    },
);

sub create_data_dir {
    my $self = shift;

    if ( $self->has_data_dir ) {
        make_path( $self->data_dir);
        return;
    }

    my $data_dir = File::Spec->catdir( $self->logdir, 'stats' );
    my $ug   = Data::UUID->new;
    my $uuid = $ug->create();
    $uuid = $ug->to_string($uuid);
    $self->submission_uuid($uuid);
    
    return $data_dir;
}

1;


Powered by Groonga
Maintained by Kenichi Ishigaki <ishigaki@cpan.org>. If you find anything, submit it on GitHub.