aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilip Kaludercic2022-10-20 21:34:48 +0200
committerPhilip Kaludercic2022-10-20 21:34:48 +0200
commit2dabcba1489aefe1c309bb1385ffc959e767f0c5 (patch)
treef797139d87dfbd2f5d1e50476b75e1b90cc76f84
parent37bfb623e4b253443e8280c3de4ff91f8db5f51b (diff)
downloademacs-2dabcba1489aefe1c309bb1385ffc959e767f0c5.tar.gz
emacs-2dabcba1489aefe1c309bb1385ffc959e767f0c5.zip
Build documentation like elpa-admin.el
* lisp/emacs-lisp/package-vc.el (package-vc-build-documentation): Add function to build a documentation file. (package-vc-unpack-1): Use 'package-vc-build-documentation'.
-rw-r--r--lisp/emacs-lisp/package-vc.el27
1 files changed, 19 insertions, 8 deletions
diff --git a/lisp/emacs-lisp/package-vc.el b/lisp/emacs-lisp/package-vc.el
index 83038418529..e9f5f254d09 100644
--- a/lisp/emacs-lisp/package-vc.el
+++ b/lisp/emacs-lisp/package-vc.el
@@ -242,6 +242,21 @@ The output is written out into PKG-FILE."
242 "\n") 242 "\n")
243 nil pkg-file nil 'silent)))) 243 nil pkg-file nil 'silent))))
244 244
245(declare-function org-export-to-file "ox" (backend file))
246
247(defun package-vc-build-documentation (pkg-desc file)
248 "Build documentation FILE for PKG-DESC."
249 (let ((pkg-dir (package-desc-dir pkg-desc)))
250 (when (string-match-p "\\.org\\'" file)
251 (require 'ox)
252 (require 'ox-texinfo)
253 (with-temp-buffer
254 (insert-file-contents file)
255 (setq file (make-temp-file "ox-texinfo-"))
256 (org-export-to-file 'texinfo file)))
257 (call-process "install-info" nil nil nil
258 file pkg-dir)))
259
245(defun package-vc-unpack-1 (pkg-desc pkg-dir) 260(defun package-vc-unpack-1 (pkg-desc pkg-dir)
246 "Install PKG-DESC that is already located in PKG-DIR." 261 "Install PKG-DESC that is already located in PKG-DIR."
247 ;; In case the package was installed directly from source, the 262 ;; In case the package was installed directly from source, the
@@ -273,14 +288,10 @@ The output is written out into PKG-FILE."
273 (package-vc-generate-description-file pkg-desc pkg-file) 288 (package-vc-generate-description-file pkg-desc pkg-file)
274 289
275 ;; Detect a manual 290 ;; Detect a manual
276 (when (executable-find "install-info") 291 (when-let ((pkg-spec (pacakge-vc-desc->spec pkg-desc))
277 ;; Only proceed if we can find an unambiguous TeXinfo file 292 ((executable-find "install-info")))
278 (let ((texi-files (directory-files pkg-dir t "\\.texi\\'")) 293 (dolist (doc-file (ensure-list (plist-get pkg-spec :doc)))
279 (dir-file (expand-file-name "dir" pkg-dir))) 294 (package-vc-build-documentation pkg-desc doc-file))))
280 (when (length= texi-files 1)
281 (call-process "install-info" nil nil nil
282 (concat "--dir=" dir-file)
283 (car texi-files))))))
284 295
285 ;; Update package-alist. 296 ;; Update package-alist.
286 (let ((new-desc (package-load-descriptor pkg-dir))) 297 (let ((new-desc (package-load-descriptor pkg-dir)))