| #******************************************************************************* |
| #* Copyright (c) 2011 Forschungszentrum Juelich GmbH. |
| #* All rights reserved. This program and the accompanying materials |
| #* are made available under the terms of the Eclipse Public License v1.0 |
| #* which accompanies this distribution, and is available at |
| #* http://www.eclipse.org/legal/epl-v10.html |
| #* |
| #* Contributors: |
| #* Wolfgang Frings (Forschungszentrum Juelich GmbH) |
| #*******************************************************************************/ |
| package LML_da_step_execute; |
| |
| my $VERSION='$Revision: 1.00 $'; |
| my($debug)=0; |
| |
| use strict; |
| use Data::Dumper; |
| use XML::Simple; |
| use Time::Local; |
| use Time::HiRes qw ( time ); |
| use LML_da_util; |
| |
| sub new { |
| my $self = {}; |
| my $proto = shift; |
| my $class = ref($proto) || $proto; |
| my $stepdef = shift; |
| my $globalvarref = shift; |
| printf("\t LML_da_step: new %s\n",ref($proto)) if($debug>=3); |
| $self->{STEPDEF} = $stepdef; |
| $self->{GLOBALVARS}= $globalvarref; |
| $self->{VERBOSE} = $globalvarref->{verbose}; |
| $self->{TMPDIR} = $globalvarref->{"tmpdir"}; |
| $self->{PERMDIR} = $globalvarref->{"permdir"}; |
| bless $self, $class; |
| return $self; |
| } |
| |
| sub execute { |
| my($self) = shift; |
| my($file,$newfile)=@_; |
| my($cmd,$cmdref); |
| my($tstart,$tdiff); |
| my $rc=0; |
| my $step=$self->{STEPDEF}->{id}; |
| my $stepref=$self->{STEPDEF}; |
| |
| # print Dumper($stepref); |
| |
| foreach $cmdref (@{$self->{STEPDEF}->{cmd}}) { |
| $cmd=$cmdref->{exec}; |
| printf "LML_da_step_execute: executing: %s ...\n",$cmd if($self->{VERBOSE}); |
| $tstart=time; |
| system($cmd);$rc=$?; |
| $tdiff=time-$tstart; |
| printf "LML_da_step_execute: %60s -> ready, time used %10.4ss\n","",$tdiff if($self->{VERBOSE}); |
| if($rc) { printf STDERR "failed executing: %s rc=%d\n",$cmd,$rc; return(-1);} |
| } |
| return($rc); |
| } |
| |
| |
| |
| 1; |