summary refs log tree commit diff
diff options
context:
space:
mode:
-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)