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 )