From 68327fda24b852ec4daed02ad677c49da75c38aa Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Tue, 29 Jun 2021 11:04:54 +0530 Subject: doc: Document passing input into stdin. * doc/ccwl.skb (Tutorial)[Passing input into the standard input stream of a command]: New section. * doc/pass-stdin.scm, doc/pass-stdin.out: New files. --- doc/ccwl.skb | 15 +++++++++++++++ doc/pass-stdin.out | 13 +++++++++++++ doc/pass-stdin.scm | 7 +++++++ 3 files changed, 35 insertions(+) create mode 100644 doc/pass-stdin.out create mode 100644 doc/pass-stdin.scm diff --git a/doc/ccwl.skb b/doc/ccwl.skb index 51ce5bf..2fec996 100644 --- a/doc/ccwl.skb +++ b/doc/ccwl.skb @@ -149,6 +149,21 @@ output.]) (prog :line #f (source :file "doc/capture-output-file-with-parameter-reference.out"))) + (section :title [Passing input into the standard input stream of a command] + (p [Some commands read input from their standard input +stream. Let us do that from ccwl. The workflow below reports the size +of a file by passing it into the standard input of +,(command "wc"). Notice the additional ,(code "#:stdin") keyword that +references the input ,(code "file").]) + + (scheme-source "doc/pass-stdin.scm") + + (p [Compiling and running this workflow gives us the following +output. Notice the file ,(file "foo") passed into the standard input +of ,(command "wc"), and the file size reported in bytes.]) + + (prog :line #f (source :file "doc/pass-stdin.out"))) + (section :title [Workflow with multiple steps] (p [Till now, we have only written trivial workflows with a single command. If we were only interested in executing single diff --git a/doc/pass-stdin.out b/doc/pass-stdin.out new file mode 100644 index 0000000..c4af7da --- /dev/null +++ b/doc/pass-stdin.out @@ -0,0 +1,13 @@ +$ ccwl compile pass-stdin.scm > pass-stdin.cwl +$ cwltool pass-stdin.cwl --file foo + [workflow ] start + [workflow ] starting step count-bytes + [step count-bytes] start + [job count-bytes] /tmp/wxi6_9jz$ wc \ + -c < /tmp/siden6hu/stg51eaae41-52a5-4e69-a78e-caefd84f7af5/foo +37 + [job count-bytes] completed success + [step count-bytes] completed success + [workflow ] completed success +{} + Final process status is success \ No newline at end of file diff --git a/doc/pass-stdin.scm b/doc/pass-stdin.scm new file mode 100644 index 0000000..3bdc70b --- /dev/null +++ b/doc/pass-stdin.scm @@ -0,0 +1,7 @@ +(define count-bytes + (command #:inputs (file #:type 'File) + #:run "wc" "-c" + #:stdin file)) + +(workflow ((file #:type File)) + (count-bytes #:file file)) -- cgit v1.2.3