diff options
author | Philip Kaludercic <philipk@posteo.net> | 2022-10-20 21:34:48 +0200 |
---|---|---|
committer | Philip Kaludercic <philipk@posteo.net> | 2022-10-20 21:34:48 +0200 |
commit | 2dabcba1489aefe1c309bb1385ffc959e767f0c5 (patch) | |
tree | f797139d87dfbd2f5d1e50476b75e1b90cc76f84 /lisp/emacs-lisp | |
parent | 37bfb623e4b253443e8280c3de4ff91f8db5f51b (diff) | |
download | emacs-2dabcba1489aefe1c309bb1385ffc959e767f0c5.tar.gz emacs-2dabcba1489aefe1c309bb1385ffc959e767f0c5.tar.bz2 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'.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/package-vc.el | 27 |
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." "\n") nil pkg-file nil 'silent)))) +(declare-function org-export-to-file "ox" (backend file)) + +(defun package-vc-build-documentation (pkg-desc file) + "Build documentation FILE for PKG-DESC." + (let ((pkg-dir (package-desc-dir pkg-desc))) + (when (string-match-p "\\.org\\'" file) + (require 'ox) + (require 'ox-texinfo) + (with-temp-buffer + (insert-file-contents file) + (setq file (make-temp-file "ox-texinfo-")) + (org-export-to-file 'texinfo file))) + (call-process "install-info" nil nil nil + file pkg-dir))) + (defun package-vc-unpack-1 (pkg-desc pkg-dir) "Install PKG-DESC that is already located in PKG-DIR." ;; In case the package was installed directly from source, the @@ -273,14 +288,10 @@ The output is written out into PKG-FILE." (package-vc-generate-description-file pkg-desc pkg-file) ;; Detect a manual - (when (executable-find "install-info") - ;; Only proceed if we can find an unambiguous TeXinfo file - (let ((texi-files (directory-files pkg-dir t "\\.texi\\'")) - (dir-file (expand-file-name "dir" pkg-dir))) - (when (length= texi-files 1) - (call-process "install-info" nil nil nil - (concat "--dir=" dir-file) - (car texi-files)))))) + (when-let ((pkg-spec (pacakge-vc-desc->spec pkg-desc)) + ((executable-find "install-info"))) + (dolist (doc-file (ensure-list (plist-get pkg-spec :doc))) + (package-vc-build-documentation pkg-desc doc-file)))) ;; Update package-alist. (let ((new-desc (package-load-descriptor pkg-dir))) |