From: Philip Kaludercic Date: Thu, 10 Nov 2022 23:09:46 +0000 (+0100) Subject: Improve robustness of documentation generation X-Git-Tag: emacs-29.0.90~1616^2~80 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=7c3d3fa44e666b71881c34afa3d357feec758ec0;p=emacs.git Improve robustness of documentation generation * lisp/emacs-lisp/package-vc.el (package-vc--build-documentation): Log output and display error messages if anything goes wrong. --- diff --git a/lisp/emacs-lisp/package-vc.el b/lisp/emacs-lisp/package-vc.el index d9b335f1cff..7fed1b5885e 100644 --- a/lisp/emacs-lisp/package-vc.el +++ b/lisp/emacs-lisp/package-vc.el @@ -355,10 +355,8 @@ asynchronously." FILE can be an Org file, indicated by its \".org\" extension, otherwise it's assumed to be an Info file." (let* ((pkg-name (package-desc-name pkg-desc)) - (pkg-dir (package-desc-dir pkg-desc)) - (output (file-name-concat - (format "%s.info" pkg-name) - pkg-dir))) + (default-directory (package-desc-dir pkg-desc)) + (output (expand-file-name (format "%s.info" pkg-name)))) (when (string-match-p "\\.org\\'" file) (require 'ox) (require 'ox-texinfo) @@ -366,10 +364,18 @@ otherwise it's assumed to be an Info file." (insert-file-contents file) (setq file (make-temp-file "ox-texinfo-")) (org-export-to-file 'texinfo file))) - (call-process "makeinfo" nil nil nil - "--no-split" file "-o" output) - (call-process "install-info" nil nil nil - output pkg-dir))) + (with-current-buffer (get-buffer-create " *package-vc doc*") + (erase-buffer) + (cond + ((/= 0 (call-process "makeinfo" nil t nil + "--no-split" file "-o" output)) + (message "Failed to build manual %s, see buffer %S" + file (buffer-name))) + ((/= 0 (call-process "install-info" nil t nil + output (expand-file-name "dir"))) + (message "Failed to install manual %s, see buffer %S" + output (buffer-name))) + ((kill-buffer)))))) (defun package-vc--unpack-1 (pkg-desc pkg-dir) "Prepare PKG-DESC that is already checked-out in PKG-DIR.