The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

=head1 Plugin  ExpandObjects

Expand /objects in %DEPENDENCY_LIST_EXPANDED

=cut

use PBS::Output;
use PBS::SubpbsResult ;

use Data::TreeDumper ;

#-------------------------------------------------------------------------------

sub EvaluateShellCommand
{
my ($shell_command_ref, $tree, $dependencies, $triggered_dependencies) = @_ ;

#~ PrintDebug "$$shell_command_ref\n" ;

if($$shell_command_ref =~ /([^\s]+)?\%DEPENDENCY_LIST_EXPANDED/)
	{
	my $expanded_dependency_list = '' ;
	
	for my $dependency (@$dependencies)
		{
		if($dependency =~ /\.objects$/)
			{
			$expanded_dependency_list .= ' ' . join(' ', GetFiles(new PBS::SubpbsResult($dependency))) ;
			}
		else
			{
			$expanded_dependency_list .= ' ' . $dependency ;
			}
		}
	
	$$shell_command_ref =~ s/\%DEPENDENCY_LIST_EXPANDED/$expanded_dependency_list/g ;
	}
	

#~ PrintDebug "   => $$shell_command_ref\n\n" ;
}

sub GetFiles
{
# extract files from fileAndMd5 class

my ($subpbs_result) = @_ ;

return
	(
	map{$_->{FILE}} @{ $subpbs_result->GetFileAndMd5()}
	) ;
}

#-------------------------------------------------------------------------------

1 ;