Function: majutsu-process-finish
majutsu-process-finish is a natively compiled function defined in
majutsu-process.el.
Signature
(majutsu-process-finish ARG &optional PROCESS-BUF COMMAND-BUF DEFAULT-DIR SECTION)
Documentation
Finalize a jj process log SECTION.
ARG may be a process object or an exit code. Return the exit code.
Source Code
;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-process.el
(defun majutsu-process-finish (arg &optional process-buf _command-buf default-dir section)
"Finalize a jj process log SECTION.
ARG may be a process object or an exit code. Return the exit code."
(let ((process (unless (integerp arg) arg))
exit-code)
(unless (integerp arg)
(setq process-buf (process-buffer arg))
(setq default-dir (process-get arg 'default-dir))
(setq section (process-get arg 'section))
(setq exit-code (process-exit-status arg)))
(when (integerp arg)
(setq exit-code arg))
(when (and (buffer-live-p process-buf) section (integerp exit-code))
(with-current-buffer process-buf
(majutsu--process-finish-section section exit-code)))
(cond
((and (integerp exit-code) (= exit-code 0))
(when-let* ((success-msg (and process (process-get process 'success-msg))))
(message "%s" success-msg))
(when-let* ((cb (and process (process-get process 'finish-callback))))
(funcall cb process exit-code)))
((integerp exit-code)
(let* ((msg (majutsu--process-error-summary process-buf section))
(usage (majutsu--process--error-usage process-buf))
(root default-dir))
(when-let* ((log-buf (and root (majutsu--find-mode-buffer 'majutsu-log-mode root))))
(with-current-buffer log-buf
(setq-local majutsu-log--this-error (or msg "Command failed"))))
(message "jj error: %s%s"
(or msg "Command failed")
(and usage (format " [%s]" usage))))))
(when-let* ((cb (and process (process-get process 'finish-callback))))
(unless (and (integerp exit-code) (= exit-code 0))
(funcall cb process exit-code)))
exit-code))