branch: elpa-admin
commit 39eb0cf93aaceb60766f113597268bab43c1d766
Author: Stefan Monnier <[email protected]>
Commit: Stefan Monnier <[email protected]>
* admin/archive-contents.el (batch-generate-description-file): New function
* GNUmakefile (%-pkg.el): Use it so we can get the release's
version number via `:version-map`.
(all): Don't touch `.gitignore`.
(.gitignore): Remove rule.
(current_elcs): Revert accidental change.
---
GNUmakefile | 9 +++------
admin/archive-contents.el | 11 +++++++++++
2 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/GNUmakefile b/GNUmakefile
index 9b7f27b..6d4e5ce 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -170,7 +170,7 @@ included_els := $(shell tar -cvhf /dev/null
--exclude-ignore=.elpaignore \
# packages/*/*/*/*/*.el))
els := $(call FILTER-nonsrc, $(included_els))
naive_elcs := $(patsubst %.el, %.elc, $(els))
-current_elcs := $(shell find . -name '*.elc' -print)
+current_elcs := $(shell find packages -name '*.elc' -print)
extra_els := $(call SET-diff, $(els), $(patsubst %.elc, %.el, $(current_elcs)))
nbc_els := $(foreach el, $(extra_els), \
@@ -201,11 +201,8 @@ pkg_descs:=$(foreach pkg, $(pkgs), $(pkg)/$(notdir
$(pkg))-pkg.el)
#$(foreach al, $(single_pkgs), $(eval $(call RULE-srcdeps, $(al))))
%-pkg.el: %.el
@echo 'Generating description file $@'
- @$(EMACS) \
- --eval '(require (quote package))' \
- --eval '(setq b (find-file-noselect "$<"))' \
- --eval '(setq d (with-current-buffer b (package-buffer-info)))' \
- --eval '(package-generate-description-file d "$@")'
+ @$(EMACS) -l admin/archive-contents.el \
+ -f batch-generate-description-file "$@"
.PHONY: all-in-place
# Use order-only prerequisites, so that autoloads are done first.
diff --git a/admin/archive-contents.el b/admin/archive-contents.el
index e16fc0d..48a996d 100644
--- a/admin/archive-contents.el
+++ b/admin/archive-contents.el
@@ -612,6 +612,17 @@ Rename DIR/ to PKG-VERS/, and return the descriptor."
nil
pkg-file)))
+(defun batch-generate-description-file (&rest _)
+ "(Re)build the <PKG>-pkg.el file for particular packages."
+ (while command-line-args-left
+ (let* ((file (pop command-line-args-left))
+ (dir (file-name-directory file))
+ (pkg (file-name-nondirectory (directory-file-name dir)))
+ (pkg-spec (archive--get-package-spec pkg))
+ (version-map (plist-get pkg-spec :version-map)))
+ (archive--write-pkg-file dir pkg
+ (archive--metadata dir pkg version-map)))))
+
;;; Make the HTML pages for online browsing.
(defun archive--html-header (title &optional header)