BioX-Workflow-Command

 view release on metacpan or  search on metacpan

lib/BioX/Workflow/Command/run/Utils/Files/ResolveDeps.pm  view on Meta::CPAN

package BioX::Workflow::Command::run::Utils::Files::ResolveDeps;

use strict;
use warnings FATAL => 'all';
use MooseX::App::Role;
use namespace::autoclean;

use String::Approx 'amatch';
use Algorithm::Dependency::Source::HoA;
use Algorithm::Dependency::Ordered;
use Try::Tiny;
use Path::Tiny;
use Text::ASCIITable;
use Data::Dumper;

option 'auto_deps' => (
    is      => 'rw',
    isa     => 'Bool',
    default => 0,
    documentation =>
      'Create a dependency tree using the INPUT/OUTPUTs of a rule',
);

has 'rule_deps' => (
    traits  => ['Hash'],
    is      => 'rw',
    isa     => 'HashRef',
    default => sub { {} },
    handles => {
        seen_rule_deps_pairs => 'kv',
        clear_seen_rule_deps => 'clear',
    },
);

has 'graph' => (
    traits  => ['Hash'],
    is      => 'rw',
    isa     => 'HashRef',
    default => sub { {} },
    handles => {
        seen_graph_pairs => 'kv',
        clear_seen_graph => 'clear',
    },
);

sub add_graph {
    my $self = shift;
    my $cond = shift;

    return unless $self->files;
    return unless $self->has_files;

    for my $file ( $self->all_files ) {
        if ( !exists $self->rule_deps->{ $self->rule_name }->{$cond}->{$file} )
        {
            $self->rule_deps->{ $self->rule_name }->{$cond}->{$file} = 1;
        }
    }
}

sub post_process_rules {
    my $self = shift;

    #Create flags for outputs that have a similar input
    $self->app_log->info();

    $self->dedeps;
    $self->process_auto_deps;

    $self->print_process_workflow;
}



( run in 1.668 second using v1.01-cache-2.11-cpan-39bf76dae61 )