summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ravanan/command-line-tool.scm54
1 files changed, 36 insertions, 18 deletions
diff --git a/ravanan/command-line-tool.scm b/ravanan/command-line-tool.scm
index 0649a81..4237600 100644
--- a/ravanan/command-line-tool.scm
+++ b/ravanan/command-line-tool.scm
@@ -513,7 +513,11 @@ path."
     (if (file-exists? store-data-file)
         ;; Return a dummy success state object if script has already
         ;; been run successfully.
-        (single-machine-job-state script #t)
+        (begin
+          (format (current-error-port)
+                  "~a previously run; retrieving result from store~%"
+                  script)
+          (single-machine-job-state script #t))
         ;; Run script if it has not already been run.
         (begin
           ;; Delete output files directory if an incomplete one exists
@@ -529,22 +533,32 @@ path."
             ((single-machine)
              (setenv "WORKFLOW_OUTPUT_DIRECTORY" store-files-directory)
              (setenv "WORKFLOW_OUTPUT_DATA_FILE" store-data-file)
+             (format (current-error-port)
+                     "Running ~a~%"
+                     script)
              (single-machine-job-state script
                                        (zero? (with-output-to-file stdout-file
                                                 (lambda ()
                                                   (with-error-to-file stderr-file
                                                     (cut system* script)))))))
             ((slurm-api)
-             (slurm-job-state script
-                              (submit-job `(("WORKFLOW_OUTPUT_DIRECTORY" .
-                                             ,store-files-directory)
-                                            ("WORKFLOW_OUTPUT_DATA_FILE" .
-                                             ,store-data-file))
-                                          stdout-file
-                                          stderr-file
-                                          script
-                                          #:api-endpoint slurm-api-endpoint
-                                          #:jwt slurm-jwt)))
+             (format (current-error-port)
+                     "Submitting job ~a~%"
+                     script)
+             (let ((job-id (submit-job `(("WORKFLOW_OUTPUT_DIRECTORY" .
+                                          ,store-files-directory)
+                                         ("WORKFLOW_OUTPUT_DATA_FILE" .
+                                          ,store-data-file))
+                                       stdout-file
+                                       stderr-file
+                                       script
+                                       #:api-endpoint slurm-api-endpoint
+                                       #:jwt slurm-jwt)))
+               (format (current-error-port)
+                       "~a submitted as job ID ~a~%"
+                       script
+                       job-id)
+               (slurm-job-state script job-id)))
             (else
              (assertion-violation batch-system "Invalid batch system")))))))
 
@@ -927,7 +941,7 @@ named @var{name} with @var{inputs} using tools from Guix manifest
                (guard (c ((job-failure? c)
                           (let ((script (job-failure-script c)))
                             (error
-                             "Invocation of ~a failed~%See files ~a and ~a for logs~%"
+                             "~a failed; logs at ~a and ~a~%"
                              script
                              (script->store-stdout-file script store)
                              (script->store-stderr-file script store)))))
@@ -949,9 +963,13 @@ named @var{name} with @var{inputs} using tools from Guix manifest
                ((single-machine) 0)
                ((slurm-api) %job-poll-interval))
              (lambda (state)
-               (capture-command-line-tool-output
-                ((case batch-system
-                   ((single-machine) single-machine-job-state-script)
-                   ((slurm-api) slurm-job-state-script))
-                 state)
-                store))))
+               (let ((script ((case batch-system
+                                ((single-machine) single-machine-job-state-script)
+                                ((slurm-api) slurm-job-state-script))
+                              state)))
+                 (format (current-error-port)
+                         "~a completed; logs at ~a and ~a~%"
+                         script
+                         (script->store-stdout-file script store)
+                         (script->store-stderr-file script store))
+                 (capture-command-line-tool-output script store)))))