about summary refs log tree commit diff
diff options
context:
space:
mode:
-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