summary refs log tree commit diff
diff options
context:
space:
mode:
authorArun Isaac2021-03-06 01:00:09 +0530
committerArun Isaac2021-03-06 02:11:57 +0530
commit3df1beff308d8b0fdbc6a32cf17dc5908d39fcb8 (patch)
treea54e1392edf9baec8c4e44123680a40f6339a30c
parentd09c5227b2fb8ab2747e3e57ad90c5f0976211f9 (diff)
downloadccwl-3df1beff308d8b0fdbc6a32cf17dc5908d39fcb8.tar.gz
ccwl-3df1beff308d8b0fdbc6a32cf17dc5908d39fcb8.tar.lz
ccwl-3df1beff308d8b0fdbc6a32cf17dc5908d39fcb8.zip
Introduce <command> type.
* ccwl/ccwl.scm (<command>): New type.
(command): New function.
-rw-r--r--ccwl/ccwl.scm19
1 files changed, 19 insertions, 0 deletions
diff --git a/ccwl/ccwl.scm b/ccwl/ccwl.scm
index 1d44dfc..e73b9e6 100644
--- a/ccwl/ccwl.scm
+++ b/ccwl/ccwl.scm
@@ -9,6 +9,7 @@
   #:use-module (srfi srfi-9 gnu)
   #:use-module (ice-9 match)
   #:export (clitool
+            command
             workflow
             input
             output
@@ -126,6 +127,24 @@
   (in step-in set-step-in)
   (out step-out set-step-out))
 
+(define-immutable-record-type <command>
+  (make-command inputs outputs args stdin other)
+  command?
+  (inputs command-inputs set-command-inputs)
+  (outputs command-outputs set-command-outputs)
+  (args command-args)
+  (stdin command-stdin set-command-stdin)
+  (other command-other))
+
+(define* (command id arguments #:key (additional-inputs '()) (outputs '()) (other '()))
+  (make-step id
+             (make-command (append (filter input? arguments)
+                                   additional-inputs)
+                           outputs arguments #f other)
+             (append (filter input? arguments)
+                     additional-inputs)
+             outputs))
+
   "Build a Workflow class CWL workflow."
   `((cwlVersion . "v1.1")
     (class . Workflow)