Function: eca-jobs--view-output-by-id

eca-jobs--view-output-by-id is a natively compiled function defined in eca-jobs.el.

Signature

(eca-jobs--view-output-by-id SESSION JOB-ID)

Documentation

Fetch and display output for JOB-ID using SESSION.

Source Code

;; Defined in /nix/store/jklqzw6pzz6j4jrbv8wy0iwgi7jlrbld-emacs-packages-deps/share/emacs/site-lisp/elpa/eca-20260928.1827/eca-jobs.el
(defun eca-jobs--view-output-by-id (session job-id)
  "Fetch and display output for JOB-ID using SESSION."
  (eca-api-request-async session
    :method "jobs/readOutput"
    :params (list :job-id job-id)
    :success-callback
    (lambda (result)
      (let* ((buf-name (format "*eca-job-output: %s*" job-id))
             (lines (plist-get result :lines))
             (status (plist-get result :status))
             (exit-code (plist-get result :exitCode))
             (buf (get-buffer-create buf-name)))
        (with-current-buffer buf
          (let ((inhibit-read-only t))
            (erase-buffer)
            (insert (propertize (format "Job: %s  Status: %s%s\n\n"
                                       job-id
                                       (or status "unknown")
                                       (if exit-code
                                           (format "  Exit: %s" exit-code)
                                         ""))
                               'font-lock-face 'bold))
            (if (and lines (> (length lines) 0))
                (dolist (line (append lines nil))
                  (let ((text (or (plist-get line :text) ""))
                        (stream (or (plist-get line :stream) "stdout")))
                    (insert (if (string= stream "stderr")
                                (propertize text 'font-lock-face 'eca-jobs-status-failed-face)
                              text))
                    (insert "\n")))
              (insert (propertize "No output" 'font-lock-face 'shadow))))
          (special-mode)
          (goto-char (point-max)))
        (let ((win (display-buffer buf '((display-buffer-reuse-window
                                          display-buffer-below-selected)
                                         (window-height . 0.4)))))
          (when win
            (with-selected-window win
              (goto-char (point-max))
              (recenter -1))))))
    :error-callback
    (lambda (_err)
      (user-error "Failed to read output for job %s" job-id))))