diff options
| author | Philip Kaludercic | 2022-10-16 17:18:06 +0200 |
|---|---|---|
| committer | Philip Kaludercic | 2022-10-16 17:18:06 +0200 |
| commit | b4e833b2f8fa6962b66eddff420b366b07c48cf0 (patch) | |
| tree | 832b96b9dbfaf579c765be06e958fe9e08462b97 | |
| parent | 5134eb02cf5cda16455e1b59b29ec82d491b115e (diff) | |
| download | emacs-b4e833b2f8fa6962b66eddff420b366b07c48cf0.tar.gz emacs-b4e833b2f8fa6962b66eddff420b366b07c48cf0.zip | |
Attempt to infer the package subject if missing
* lisp/emacs-lisp/package-vc.el (package-vc-main-file): Add function.
(package-vc-generate-description-file): Infer the subject.
| -rw-r--r-- | lisp/emacs-lisp/package-vc.el | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/package-vc.el b/lisp/emacs-lisp/package-vc.el index dfa8094e614..e146d89171a 100644 --- a/lisp/emacs-lisp/package-vc.el +++ b/lisp/emacs-lisp/package-vc.el | |||
| @@ -120,10 +120,32 @@ | |||
| 120 | return it | 120 | return it |
| 121 | finally return "0")) | 121 | finally return "0")) |
| 122 | 122 | ||
| 123 | (defun package-vc-main-file (pkg-desc) | ||
| 124 | "Return the main file of the package PKG-DESC. | ||
| 125 | If no file can be found that appends \".el\" to the end of the | ||
| 126 | package name, the file with the closest file name is chosen." | ||
| 127 | (let* ((default-directory (package-desc-dir pkg-desc)) | ||
| 128 | (best (format "%s.el" (package-desc-name pkg-desc))) | ||
| 129 | (distance most-positive-fixnum) next-best) | ||
| 130 | (if (file-exists-p best) | ||
| 131 | (expand-file-name best) | ||
| 132 | (dolist (file (directory-files default-directory nil "\\.el\\'")) | ||
| 133 | (let ((distance* (string-distance best file))) | ||
| 134 | (when (< distance* distance) | ||
| 135 | (setq distance distance* next-best file)))) | ||
| 136 | next-best))) | ||
| 137 | |||
| 123 | (defun package-vc-generate-description-file (pkg-desc pkg-file) | 138 | (defun package-vc-generate-description-file (pkg-desc pkg-file) |
| 124 | "Generate a package description file for PKG-DESC. | 139 | "Generate a package description file for PKG-DESC. |
| 125 | The output is written out into PKG-FILE." | 140 | The output is written out into PKG-FILE." |
| 126 | (let* ((name (package-desc-name pkg-desc))) | 141 | (let ((name (package-desc-name pkg-desc))) |
| 142 | ;; Infer the subject if missing. | ||
| 143 | (unless (package-desc-summary pkg-desc) | ||
| 144 | (setf (package-desc-summary pkg-desc) | ||
| 145 | (or (and-let* ((pkg (cadr (assq name package-archive-contents)))) | ||
| 146 | (package-desc-summary pkg)) | ||
| 147 | (lm-summary (package-vc-main-file pkg-desc)) | ||
| 148 | package--default-summary))) | ||
| 127 | (let ((print-level nil) | 149 | (let ((print-level nil) |
| 128 | (print-quoted t) | 150 | (print-quoted t) |
| 129 | (print-length nil)) | 151 | (print-length nil)) |