diff options
author | Arun Isaac | 2025-06-29 00:09:01 +0100 |
---|---|---|
committer | Arun Isaac | 2025-06-29 00:09:01 +0100 |
commit | c3d7dabe1401e9f98620e3eb7913eac85f7a1e21 (patch) | |
tree | 39fd7aada15e2f895b1ecec129c48addeccb4a08 | |
parent | 76912ec25c03d110b109c024c59992fef33cab12 (diff) | |
download | ravanan-c3d7dabe1401e9f98620e3eb7913eac85f7a1e21.tar.gz ravanan-c3d7dabe1401e9f98620e3eb7913eac85f7a1e21.tar.lz ravanan-c3d7dabe1401e9f98620e3eb7913eac85f7a1e21.zip |
reader: Read manifest files with respect to the workflow file.
* ravanan/reader.scm (normalize-software-requirement): New function.
(normalize-requirements): Use normalize-software-requirement.
-rw-r--r-- | ravanan/reader.scm | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/ravanan/reader.scm b/ravanan/reader.scm index 344ff7f..fd959de 100644 --- a/ravanan/reader.scm +++ b/ravanan/reader.scm @@ -106,13 +106,26 @@ each association list of the returned vector of association lists. If (assoc-ref env-var-requirement "envDef") "envName" "envValue")))) +(define (normalize-software-requirement software-requirement) + (maybe-assoc-set software-requirement + ;; Canonicalize manifest file path so that we look it up with respect to the + ;; path of the workflow file. + (cons "manifest" + (maybe-bind (maybe-assoc-ref (just software-requirement) + "manifest") + (compose just canonicalize-path))))) + (define (normalize-requirements maybe-requirements) (maybe-let* ((requirements maybe-requirements)) (just (vector-map (lambda (requirement) - (if (string=? (assoc-ref requirement "class") - "EnvVarRequirement") - (normalize-env-var-requirement requirement) - requirement)) + (let ((class (assoc-ref requirement "class"))) + (cond + ((string=? class "EnvVarRequirement") + (normalize-env-var-requirement requirement)) + ((string=? class "SoftwareRequirement") + (normalize-software-requirement requirement)) + (else + requirement)))) (coerce-alist->vector requirements "class"))))) (define (normalize-secondary-files secondary-files default-required) |