branch: elpa-admin commit 39eb0cf93aaceb60766f113597268bab43c1d766 Author: Stefan Monnier <monn...@iro.umontreal.ca> Commit: Stefan Monnier <monn...@iro.umontreal.ca>
* 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)