aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ravanan/command-line-tool.scm12
1 files changed, 8 insertions, 4 deletions
diff --git a/ravanan/command-line-tool.scm b/ravanan/command-line-tool.scm
index 51f14c2..cb309a0 100644
--- a/ravanan/command-line-tool.scm
+++ b/ravanan/command-line-tool.scm
@@ -890,16 +890,20 @@ same as in @code{run-workflow} from @code{(ravanan workflow)}."
("checksum" . ,(or (assoc-ref value "checksum")
(checksum path))))))
+ (define (secondary-path path secondary-file)
+ "Derive path to @var{secondary-file} from primary @var{path}."
+ (let ((pattern (assoc-ref* secondary-file "pattern")))
+ ;; TODO: Implement ? and ^ characters in SecondaryFileSchema
+ ;; DSL.
+ (string-append path pattern)))
+
(define (capture-secondary-file path secondary-file
workflow-output-directory)
"Capture @var{secondary-file} for primary @var{path} and return its
canonicalized value. If @var{required} is @code{#t} and no such secondary file
is found, error out. @var{workflow-output-directory} is path to the output
directory of the workflow."
- (let* ((pattern (assoc-ref* secondary-file "pattern"))
- ;; TODO: Implement caret characters in
- ;; SecondaryFileSchema DSL.
- (secondary-file-path (string-append path pattern))
+ (let* ((secondary-file-path (secondary-path path pattern))
(secondary-file-value
(and (file-exists? secondary-file-path)
(copy-file-value (canonicalize-file-value