emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa-admin 995404d 401/439: * elpa-admin.el: Allow generating a


From: Philip Kaludercic
Subject: [nongnu] elpa-admin 995404d 401/439: * elpa-admin.el: Allow generating autoloads for "unlisted" packages
Date: Sun, 17 Oct 2021 15:48:45 -0400 (EDT)

branch: elpa-admin
commit 995404d8076ce74e4b39e27a952c57f8fa5ffb6c
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>

    * elpa-admin.el: Allow generating autoloads for "unlisted" packages
    
    (elpaa--get-package-spec): New arg `noerror`.
    (elpaa-batch-generate-autoloads): Use it.
    
    * GNUmakefile (descs <var>): Rename from `pkg_descs`.
    (install-in-place, descs, autoloads): New targets.
---
 GNUmakefile   | 13 +++++++------
 elpa-admin.el |  9 ++++++---
 2 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/GNUmakefile b/GNUmakefile
index 3059222..2ffcec2 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -69,6 +69,7 @@ endef
 
 # Compute the set of autolods files and their dependencies.
 autoloads := $(foreach pkg, $(pkgs), $(pkg)/$(notdir $(pkg))-autoloads.el)
+descs := $(foreach pkg, $(pkgs), $(pkg)/$(notdir $(pkg))-pkg.el)
 
 # FIXME: In 99% of the cases, autoloads can be generated in any order.
 # But the `names' package is an exception because it sets up an advice that
@@ -83,6 +84,7 @@ autoloads := $(foreach pkg, $(pkgs), $(pkg)/$(notdir 
$(pkg))-autoloads.el)
 # packages/aggressive-indent/aggressive-indent-autoloads.el: \
 #     packages/names/names-autoloads.el
 
+# .PRECIOUS: packages/%-autoloads.el
 packages/%-autoloads.el: elpa-packages
        @#echo 'Generating autoloads for $@'
        $(EMACS) -l admin/elpa-admin.el                                    \
@@ -138,18 +140,17 @@ $(PKG_DESCS_MK): elpa-packages packages
        $(EMACS) -Q -l admin/elpa-admin.el \
                 -f elpaa-batch-pkg-spec-make-dependencies $@
 
-# # Put into single_pkgs the set of -pkg.el files we need to keep up-to-date.
-# # I.e. all the -pkg.el files for the single-file packages.
-pkg_descs:=$(foreach pkg, $(pkgs), $(pkg)/$(notdir $(pkg))-pkg.el)
-#$(foreach al, $(single_pkgs), $(eval $(call RULE-srcdeps, $(al))))
 packages/%-pkg.el:
        @echo 'Generating description file $@'
        @$(EMACS) -l admin/elpa-admin.el \
                  -f elpaa-batch-generate-description-file "$@"
 
-.PHONY: all-in-place
+.PHONY: all-in-place autoloads descs install-in-place
 # Use order-only prerequisites, so that autoloads are done first.
-all-in-place: | $(autoloads) $(pkg_descs) $(pkgs) #$(extra_elcs)
+all-in-place: | install-in-place $(pkgs) #$(extra_elcs)
+autoloads: $(autoloads)
+descs: $(descs)
+install-in-place: autoloads descs
 
 define FILE-els
 $(filter %.el, $(1))
diff --git a/elpa-admin.el b/elpa-admin.el
index 77e57a1..2a48ecc 100644
--- a/elpa-admin.el
+++ b/elpa-admin.el
@@ -447,12 +447,15 @@ Return non-nil if a new tarball was created."
                               (replace-regexp-in-string "[^.0-9]+" ""
                                                         verdate))))
 
-(defun elpaa--get-package-spec (pkgname)
+(defun elpaa--get-package-spec (pkgname &optional noerror)
   "Retrieve the property list for PKGNAME from `elpaa--specs-file'."
   (let* ((specs (elpaa--get-specs))
          (spec (assoc pkgname specs)))
     (if (null spec)
-        (error "Unknown package %S" pkgname)
+       (if (not noerror)
+            (error "Unknown package %S" pkgname)
+         (message "Unknown package %S" pkgname)
+         (list pkgname))
       spec)))
 
 (defun elpaa-batch-make-all-packages (&rest _)
@@ -1695,7 +1698,7 @@ More at " (elpaa--default-url pkgname))
   (let* ((alf (pop command-line-args-left))
          (dir (file-name-directory alf))
          (pkgname (file-name-nondirectory (directory-file-name dir)))
-         (pkg-spec (elpaa--get-package-spec pkgname))
+         (pkg-spec (elpaa--get-package-spec pkgname 'noerror))
          (lisp-dir (elpaa--spec-get pkg-spec :lisp-dir)))
     (require 'package)
     (if (null lisp-dir)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]