From 770b738fe62112fc16c5213bd5769a8a54074fc7 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Fri, 1 Dec 2023 22:34:03 +0000 Subject: ccwl: Implement identity construct. * ccwl/ccwl.scm (collect-steps): Implement identity construct. * doc/ccwl.skb (Cookbook)[The identity construct]: New section. * doc/identity-construct.scm: New file. --- doc/ccwl.skb | 9 ++++++++- doc/identity-construct.scm | 14 ++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 doc/identity-construct.scm (limited to 'doc') diff --git a/doc/ccwl.skb b/doc/ccwl.skb index 726b405..cb78fd5 100644 --- a/doc/ccwl.skb +++ b/doc/ccwl.skb @@ -382,7 +382,14 @@ the external CWL workflow.] (scheme-source "doc/external-cwl-workflow.scm") [,(file "echo.cwl") is defined as] ;; TODO: Syntax highlight doc/external-cwl-workflow.cwl. - (prog :line #f (source :file "doc/echo.cwl"))))) + (prog :line #f (source :file "doc/echo.cwl")))) + (section :title [The ,(code [identity]) construct] + :ident "identity-construct" + (p [Sometimes, it is helpful for a step to simply copy all input +keys forward to the output. This is what the ,(code [identity]) +construct is for. An example follows.] + (scheme-source "doc/identity-construct.scm") + (image :file "doc/identity-construct.png")))) (chapter :title [Contributing] :ident "chapter-contributing" diff --git a/doc/identity-construct.scm b/doc/identity-construct.scm new file mode 100644 index 0000000..626568f --- /dev/null +++ b/doc/identity-construct.scm @@ -0,0 +1,14 @@ +(define print-message + (command #:inputs (message #:type string) + #:run "echo" message + #:outputs (printed-message #:type stdout))) + +(define print-file + (command #:inputs (file #:type File) + #:run "cat" file + #:outputs (printed-file #:type stdout))) + +(workflow ((message #:type string)) + (pipe (print-message #:message message) + (tee (print-file #:file printed-message) + (identity)))) -- cgit v1.2.3