aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Isaac2025-04-17 19:56:31 +0100
committerArun Isaac2025-04-17 19:56:31 +0100
commit9bf0dad2f40807f4fec673670cd40ba4107bc069 (patch)
treee509e2245718bbedeb17d449907a7fe6b7482eae
parent37b9bbb7c7b4766547defd222be23b74efdd7cc9 (diff)
downloadravanan-9bf0dad2f40807f4fec673670cd40ba4107bc069.tar.gz
ravanan-9bf0dad2f40807f4fec673670cd40ba4107bc069.tar.lz
ravanan-9bf0dad2f40807f4fec673670cd40ba4107bc069.zip
command-line-tool: Abstract out handling of SecondaryFile pattern.
* ravanan/command-line-tool.scm (build-command-line-tool-script)[secondary-path]: New function. [capture-secondary-file]: Use secondary-path.
-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