aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Isaac2025-06-05 21:45:48 +0100
committerArun Isaac2025-06-26 14:50:28 +0100
commitfd46885b7c831e39c813d3e9709b6b218fd32d5c (patch)
tree0ef8ea1ea9cd14db375b4122b69b67cc2b845452
parent175edbdeebae97eb784b8d2223c2392c9a5d250a (diff)
downloadravanan-fd46885b7c831e39c813d3e9709b6b218fd32d5c.tar.gz
ravanan-fd46885b7c831e39c813d3e9709b6b218fd32d5c.tar.lz
ravanan-fd46885b7c831e39c813d3e9709b6b218fd32d5c.zip
command-line-tool: Define environment only once.
* ravanan/command-line-tool.scm (run-command-line-tool): Define environment only once.
-rw-r--r--ravanan/command-line-tool.scm62
1 files changed, 29 insertions, 33 deletions
diff --git a/ravanan/command-line-tool.scm b/ravanan/command-line-tool.scm
index 895898a..0103441 100644
--- a/ravanan/command-line-tool.scm
+++ b/ravanan/command-line-tool.scm
@@ -401,39 +401,35 @@ state-monadic job state object.
(when (file-exists? store-files-directory)
(delete-file-recursively store-files-directory))
(mkdir store-files-directory)
- (cond
- ((eq? batch-system 'single-machine)
- (state-let* ((success? (single-machine:submit-job
- `(("WORKFLOW_OUTPUT_DIRECTORY" .
- ,store-files-directory)
- ("WORKFLOW_OUTPUT_DATA_FILE" .
- ,store-data-file))
- stdout-file
- stderr-file
- script)))
- (state-return (single-machine-job-state script success?))))
- ((slurm-api-batch-system? batch-system)
- (state-let* ((job-id
- (slurm:submit-job `(("WORKFLOW_OUTPUT_DIRECTORY" .
- ,store-files-directory)
- ("WORKFLOW_OUTPUT_DATA_FILE" .
- ,store-data-file))
- stdout-file
- stderr-file
- cpus
- name
- script
- #:api-endpoint (slurm-api-batch-system-endpoint batch-system)
- #:jwt (slurm-api-batch-system-jwt batch-system)
- #:partition (slurm-api-batch-system-partition batch-system)
- #:nice (slurm-api-batch-system-nice batch-system))))
- (format (current-error-port)
- "~a submitted as job ID ~a~%"
- script
- job-id)
- (state-return (slurm-job-state script job-id))))
- (else
- (assertion-violation batch-system "Invalid batch system")))))))
+ (let ((environment
+ `(("WORKFLOW_OUTPUT_DIRECTORY" . ,store-files-directory)
+ ("WORKFLOW_OUTPUT_DATA_FILE" . ,store-data-file))))
+ (cond
+ ((eq? batch-system 'single-machine)
+ (state-let* ((success? (single-machine:submit-job environment
+ stdout-file
+ stderr-file
+ script)))
+ (state-return (single-machine-job-state script success?))))
+ ((slurm-api-batch-system? batch-system)
+ (state-let* ((job-id
+ (slurm:submit-job environment
+ stdout-file
+ stderr-file
+ cpus
+ name
+ script
+ #:api-endpoint (slurm-api-batch-system-endpoint batch-system)
+ #:jwt (slurm-api-batch-system-jwt batch-system)
+ #:partition (slurm-api-batch-system-partition batch-system)
+ #:nice (slurm-api-batch-system-nice batch-system))))
+ (format (current-error-port)
+ "~a submitted as job ID ~a~%"
+ script
+ job-id)
+ (state-return (slurm-job-state script job-id))))
+ (else
+ (assertion-violation batch-system "Invalid batch system"))))))))
(define (capture-command-line-tool-output script store)
"Capture and return output of @code{CommandLineTool} class workflow that ran