about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ravanan/workflow.scm15
1 files changed, 10 insertions, 5 deletions
diff --git a/ravanan/workflow.scm b/ravanan/workflow.scm
index 2fd00d6..0451f68 100644
--- a/ravanan/workflow.scm
+++ b/ravanan/workflow.scm
@@ -279,11 +279,16 @@ command-line-tool)}."
                                             #())
                                         (or (assoc-ref cwl "hints")
                                             #()))
-                  (vector-map->list (lambda (input)
-                                      (let ((input-id (assoc-ref input "id")))
-                                        (cons input-id
-                                              (json-ref step "in" input-id))))
-                                    (assoc-ref run "inputs"))
+                  (vector-filter-map->list (lambda (input)
+                                             (let ((input-id (assoc-ref* input "id")))
+                                               (match (assoc input-id
+                                                             (assoc-ref* step "in"))
+                                                 ((_ . source)
+                                                  (cons input-id source))
+                                                 ;; Optional inputs may be
+                                                 ;; missing a source; drop them.
+                                                 (#f #f))))
+                                           (assoc-ref* run "inputs"))
                   ;; Inputs that either have a default or accept null values are
                   ;; optional.
                   (vector-filter-map->list (lambda (input)