SPL File TestShellSinkBadScript.spl

Toolkits > SampleShellSink 1.0.0 > sample > TestShellSinkBadScript.spl

Content

Operators
  • TestShellSinkBadScript: This sample application executes a Perl script containing a syntax error with the ShellSink operator, and logs the error messages from the Perl interpreter in the Streams application trace.

Composites

public composite TestShellSinkBadScript

This sample application executes a Perl script containing a syntax error with the ShellSink operator, and logs the error messages from the Perl interpreter in the Streams application trace.

The script can be tested independently of Streams by entering these commands at a Linux prompt:

cd .../samples/SampleShellSink
cat ./data/ozymandias.txt | ./etc/badscript.pl

Parameters

SPL Source Code


 composite TestShellSinkBadScript {
 
     param
     expression<rstring> $inputFile: dataDirectory() + "/ozymandias.txt";
     expression<rstring> $shellCommand: "./etc/badscript.pl";
 
     graph
 
 
     // create a stream of text lines for the ShellSink operator below to consume
     stream<rstring inputLine> InputStream = FileSource() {
     param
         file: $inputFile;
         format: line; }
     () as DebugInputStream = FileSink(InputStream) { param file: "debug.TestShellSinkBadScript.InputStream.out"; format: txt; hasDelayField: true; flush: 1u; writePunctuations: true; }
 
 
     // try to execute a Perl script containing a syntax error
     stream<rstring stderrLine> STDERRStream = ShellSink(InputStream) {
     param
         command: $shellCommand;  }
     () as DebugSTDERRStream = FileSink(STDERRStream) { param file: "debug.TestShellSinkBadScript.STDERRStream.out"; format: txt; hasDelayField: true; flush: 1u; writePunctuations: true; }
 
 
     // log STDERR lines 
     () as LogSTDERRStream = Custom(STDERRStream as In) {
     logic onTuple In: {
           appTrc(Trace.info, "STDERR from command '" + $shellCommand + "': " + stderrLine); } }
 
 }