Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Here is an example of a script as a local native perl task

  • definition file:
 

...

  task perl
     edit ECF_MICRO '^'
     edit ECF_JOB_CMD '^ECF_JOB^ 

...

> ^ECF_JOBOUT^ 

...

2>&1'
     label info "none"
     meter step -1 100 100
     event 1
     event 

...

2
  • headers:

#!/usr/bin/env perl # head.pl use strict; my $ECF_PORT=^ECF_PORT:0^; $ENV{'ECF_PORT'} = "^ECF_PORT:0^"; # port $ENV{'ECF_NODE'} = "^ECF_NODE:0^"; # host $ENV{'ECF_NAME'} = "^ECF_NAME:0^"; # task path $ENV{'ECF_PASS'} = "^ECF_PASS:0^"; # password $ENV{'ECF_TRYNO'} = "^ECF_TRYNO:0^"; # job number sub xinit() { system("ecflow_client --init $$"); } sub xabort() { system("ecflow_client --abort $$"); } sub xcomplete() { system("ecflow_client --complete $$"); } sub xmeter($$) { my $name=shift; my $value=shift; system("ecflow_client --meter $name $value"); } sub xevent($) { my $n=shift; system("ecflow_client --event $n"); } sub xlabel($$) { my $name=shift; my $value=shift; system("ecflow_client --label $name $value"); } xinit(); eval '

...

# tail.pl
';
if ($@){
    print "caught signal: $@\n";
    xabort();
    exit;
  }
print "the job is now complete\n";
xcomplete();
exit;

...

  • task wrapper:
#!/usr/bin/perl -w
# perl.ecf
^include 

...

<head.pl>
^manual
one liner manual
^end
^comment
one liner comment
^end

xlabel("info", "start");
xevent("1");
print "a perl task";
for (my $step=1; $step 

...

<= 100; $step++) {
   print "this is the step number $step\n";
   xmeter("step", $step);
}
	
xevent("2");	  
xlabel("info", "completion");
^include 

...

<tail.pl>