eval replace_special_vars().

This commit is contained in:
Daniel Nichter
2013-06-14 21:11:47 -07:00
parent 84cf7c00d0
commit a148ce1cff

View File

@@ -7195,35 +7195,42 @@ sub replace_special_vars {
# Optional args # Optional args
my $env = $args{env} || ''; my $env = $args{env} || '';
my $new_cmd = join(' ', my $word;
map { my $new_cmd;
my $word = $_; eval {
if ( my ($runno) = $word =~ m/__RUN_(\d+)_OUTPUT__/ ) { $new_cmd = join(' ',
if ( $output_files->[$runno] ) { map {
$word = $output_files->[$runno]; $word = $_;
if ( my ($runno) = $word =~ m/__RUN_(\d+)_OUTPUT__/ ) {
if ( $output_files->[$runno] ) {
$word = $output_files->[$runno];
}
else {
die "Run$runno has no output for $word to access.\n";
}
} }
else { if ( my ($key) = $word =~ m/__STORE_([\w-]+)__/ ) {
die "Run$runno has no output for $word to access.\n"; $word = $store->{$key};
} }
} $word =~ s/__TS__/$ts/g;
if ( my ($key) = $word =~ m/__STORE_([\w-]+)__/ ) { $word =~ s/__LIB__/$lib_dir/g;
$word = $store->{$key}; $word =~ s/__META__/$meta_dir/g;
} $word =~ s/__STAGE__/$stage_dir/g;
$word =~ s/__TS__/$ts/g; $word =~ s/__SERVICE__/$service/g;
$word =~ s/__LIB__/$lib_dir/g; $word =~ s/__STAGE_FILE_/$stage_dir\/$ts.$service/g;
$word =~ s/__META__/$meta_dir/g; $word =~ s/__META__FILE__/$meta_dir\/$service/g;
$word =~ s/__STAGE__/$stage_dir/g; $word =~ s/__BIN_DIR__/$bin_dir/g;
$word =~ s/__SERVICE__/$service/g; $word =~ s/__TRASH_FILE__/$spool_dir\/.trash\/$service/g;
$word =~ s/__STAGE_FILE_/$stage_dir\/$ts.$service/g; $word =~ s/__ENV__/$env/g;
$word =~ s/__META__FILE__/$meta_dir\/$service/g;
$word =~ s/__BIN_DIR__/$bin_dir/g;
$word =~ s/__TRASH_FILE__/$spool_dir\/.trash\/$service/g;
$word =~ s/__ENV__/$env/g;
$word; $word;
} }
split(/\s+/, $cmd) split(/\s+/, $cmd)
); );
};
if ( $EVAL_ERROR ) {
$logger->fatal("Error replacing " . ($word || '') . " in $cmd: $EVAL_ERROR");
}
return $new_cmd; return $new_cmd;
} }