SPL File TestShellSourceInputCommands.spl

Toolkits > SampleShellSource 1.1.0 > sample > TestShellSourceInputCommands.spl

Content

Operators
  • TestShellSourceInputCommands: This sample application ingests valid and invalid shell commands from a text file, executes the commands with ShellSource operators that illustrate how to specify the operator's optional parameters, and writes STDOUT, STDERR, and exit status from each command into files.

Composites

public composite TestShellSourceInputCommands

This sample application ingests valid and invalid shell commands from a text file, executes the commands with ShellSource operators that illustrate how to specify the operator's optional parameters, and writes STDOUT, STDERR, and exit status from each command into files.

Parameters

SPL Source Code


 composite TestShellSourceInputCommands {
 
     param
     expression<rstring> $commandFile: dataDirectory() + "/commands.txt";
 
     type StatusType =
         rstring command,
         int32 exitCode,
         rstring exitReason,
         list<uint64> counters ;
 
     graph
 
 
     // create a stream of shell commands for the ShellSource operators below to consume
     stream<rstring command> CommandStream = FileSource() {
     param
         file: $commandFile;
         format: line; }
     () as DebugCommandStream = FileSink(CommandStream) { param file: "debug.TestShellSourceInputCommands.CommandStream.out"; format: txt; hasDelayField: true; flush: 1u; writePunctuations: true; }
 
 
     // execute a stream of shell commands and produce tuples from the lines they write to STDOUT
     stream<rstring stdoutLine> A_STDOUTStream = ShellSource(CommandStream) {
     param
         commandAttribute: command;
         stdoutAttribute: "stdoutLine";
         }
     () as DebugA_STDOUTStream = FileSink(A_STDOUTStream) { param file: "debug.TestShellSourceInputCommands.A_STDOUTStream.out"; format: txt; hasDelayField: true; flush: 1u; writePunctuations: true; }
 
 
     // execute a stream of shell commands and produce tuples from the lines they write to STDOUT and STDERR, plus a status tuple with the commands' exit codes
     ( stream<rstring line> B_STDOUTStream ;
       stream<rstring line> B_STDERRStream ;
       stream<StatusType>   B_StatusStream ) = ShellSource(CommandStream) {
     output B_StatusStream:
         command = commandLine(),
         exitCode = exitCode(),
         exitReason = exitReason(),
         counters = lineCounters(); }
     () as DebugB_STDOUTStream = FileSink(B_STDOUTStream) { param file: "debug.TestShellSourceInputCommands.B_STDOUTStream.out"; format: txt; hasDelayField: true; flush: 1u; writePunctuations: true; }
     () as DebugB_STDERRStream = FileSink(B_STDERRStream) { param file: "debug.TestShellSourceInputCommands.B_STDERRStream.out"; format: txt; hasDelayField: true; flush: 1u; writePunctuations: true; }
     () as DebugB_StatusStream = FileSink(B_StatusStream) { param file: "debug.TestShellSourceInputCommands.B_StatusStream.out"; format: txt; hasDelayField: true; flush: 1u; writePunctuations: true; }
 
 
     // execute a stream of shell commands and produce tuples from the lines they write to STDOUT and STDERR, plus a status tuple with the commands' exit codes
     ( stream<rstring stdoutLine> C_STDOUTStream ;
       stream<rstring stderrLine> C_STDERRStream ;
       stream<StatusType>  C_StatusStream ) = ShellSource(CommandStream) {
     param
         commandAttribute: command;
         stdoutAttribute: "stdoutLine";
         stderrAttribute: "stderrLine";
     output C_StatusStream:
         command = commandLine(),
         exitCode = exitCode(),
         exitReason = exitReason(),
         counters = lineCounters(); }
     () as DebugC_STDOUTStream = FileSink(C_STDOUTStream) { param file: "debug.TestShellSourceInputCommands.C_STDOUTStream.out"; format: txt; hasDelayField: true; flush: 1u; writePunctuations: true; }
     () as DebugC_STDERRStream = FileSink(C_STDERRStream) { param file: "debug.TestShellSourceInputCommands.C_STDERRStream.out"; format: txt; hasDelayField: true; flush: 1u; writePunctuations: true; }
     () as DebugC_StatusStream = FileSink(C_StatusStream) { param file: "debug.TestShellSourceInputCommands.C_StatusStream.out"; format: txt; hasDelayField: true; flush: 1u; writePunctuations: true; }
 
 
 }