emacs-devel
[Top][All Lists]
Advanced

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

add elpaa-batch-make-one-devel to elpa/admin/elpa-admin.el


From: Stephen Leake
Subject: add elpaa-batch-make-one-devel to elpa/admin/elpa-admin.el
Date: Thu, 29 Jul 2021 09:23:57 -0700
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (windows-nt)

The attached patch adds elpaa-batch-make-one-devel to elpa-admin.el, and
adds a work-around for no symlink on Windows.

elpaa-batch-make-one-devel builds the tarball for one package; this
allows testing the package via list-packages by setting:

(add-to-list 'package-archives (cons "test" "/Projects/elpa/archive-devel"))

Ok to commit?

-- 
-- Stephe
diff --git a/elpa-admin.el b/elpa-admin.el
index bd2e7fed4d..98137808e9 100644
--- a/elpa-admin.el
+++ b/elpa-admin.el
@@ -319,7 +319,7 @@ Do it without leaving the current branch."
              (elpaa--message "%s" (buffer-string)))))))))
 
 (defun elpaa--make-one-tarball ( tarball dir pkg-spec metadata
-                                 &optional revision-function one-tarball)
+                                 &optional revision-function one-tarball 
no-symlink)
   "Create file TARBALL for PKGNAME if not done yet.
 Return non-nil if a new tarball was created."
   (elpaa--message "Building tarball %s..." tarball)
@@ -397,9 +397,11 @@ Return non-nil if a new tarball was created."
                 (elpaa--call nil "git" "tag" "-f"
                              (format "%s-release/%s-%s"
                                      elpaa--name pkgname vers))))
-            (let ((link (expand-file-name (format "%s.tar" pkgname) destdir)))
-              (when (file-symlink-p link) (delete-file link))
-              (make-symbolic-link (file-name-nondirectory tarball) link))
+           (unless no-symlink
+              (let ((link (expand-file-name (format "%s.tar" pkgname) 
destdir)))
+               (when (file-symlink-p link) (delete-file link))
+               ;; FIXME: make-symbolic-link not supported on Windows
+               (make-symbolic-link (file-name-nondirectory tarball) link)))
             (dolist (oldtarball oldtarballs)
               ;; Compress oldtarballs.
               (let ((file (cdr oldtarball)))
@@ -472,6 +474,13 @@ Return non-nil if a new tarball was created."
     (elpaa--make-one-package (elpaa--get-package-spec
                                 (pop command-line-args-left)))))
 
+(defun elpaa-batch-make-one-devel (&rest _)
+  "Build the new devel tarball (if needed) for packages listed on command 
line."
+  (while command-line-args-left
+    (let* ((pkgname (pop command-line-args-left))
+          (pkg-spec (elpaa--get-package-spec pkgname)))
+      (elpaa--make-one-package pkg-spec nil t))))
+
 (defun elpaa-batch-make-one-tarball (&rest _)
   "Build a tarball for a particular package."
   (while command-line-args-left
@@ -481,10 +490,11 @@ Return non-nil if a new tarball was created."
       (delete-file tarball)
       (elpaa--make-one-package pkg-spec tarball))))
 
-(defun elpaa--make-one-package (pkg-spec &optional one-tarball)
+(defun elpaa--make-one-package (pkg-spec &optional one-tarball devel-only)
   "Build the new tarballs (if needed) for PKG-SPEC.
 If ONE-TARBALL is non-nil, don't try and select some other revision and
-place the resulting tarball into the file named ONE-TARBALL."
+place the resulting tarball into the file named ONE-TARBALL.
+If DEVEL-ONLY is non-nil, only build the devel tarball."
   (elpaa--message "Checking package %s for updates..." (car pkg-spec))
   (let* ((pkgname (car pkg-spec))
          (dir (expand-file-name pkgname "packages"))
@@ -523,11 +533,12 @@ place the resulting tarball into the file named 
ONE-TARBALL."
                                          dir pkg-spec
                                          `(nil ,devel-vers
                                                . ,(nthcdr 2 metadata))
-                                         nil one-tarball))))
+                                         nil one-tarball devel-only))))
 
         ;; Try and build the latest release tarball.
         (cond
          (one-tarball nil)
+        (devel-only nil)
          ((or (equal vers "0")
               ;; -4 is used for "NN.MMsnapshot" and "NN.MM-git"
               (member '-4 (version-to-list vers)))

reply via email to

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