diff options
| author | Philip Kaludercic | 2022-10-20 21:34:48 +0200 |
|---|---|---|
| committer | Philip Kaludercic | 2022-10-20 21:34:48 +0200 |
| commit | 2dabcba1489aefe1c309bb1385ffc959e767f0c5 (patch) | |
| tree | f797139d87dfbd2f5d1e50476b75e1b90cc76f84 | |
| parent | 37bfb623e4b253443e8280c3de4ff91f8db5f51b (diff) | |
| download | emacs-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.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." | |||
| 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))) |