]> git.eshelyaron.com Git - emacs.git/commitdiff
Improve robustness of documentation generation
authorPhilip Kaludercic <philipk@posteo.net>
Thu, 10 Nov 2022 23:09:46 +0000 (00:09 +0100)
committerPhilip Kaludercic <philipk@posteo.net>
Thu, 17 Nov 2022 19:37:28 +0000 (20:37 +0100)
* lisp/emacs-lisp/package-vc.el (package-vc--build-documentation): Log
output and display error messages if anything goes wrong.

lisp/emacs-lisp/package-vc.el

index d9b335f1cffa216def151f8df82d11d9088fd225..7fed1b5885e1f53c9f0c2e4b3037e753a83d97d3 100644 (file)
@@ -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.