branch: elpa-admin
commit a367e06d588c469f431b388689d436bd92757ec2
Author: Stefan Monnier <[email protected]>
Commit: Stefan Monnier <[email protected]>

    elpa-admin.el (elpaa--prune-old-tarballs): Delete non-compressed tarballs
---
 elpa-admin.el | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/elpa-admin.el b/elpa-admin.el
index 2be121515c..a856c8d169 100644
--- a/elpa-admin.el
+++ b/elpa-admin.el
@@ -641,7 +641,21 @@ returns.  Return the selected revision."
                 (make-directory olddir t)
                 (funcall mvfun filename)
                 (funcall mvfun sig)))))
-        (setq oldtarballs keep))))
+        (setq oldtarballs keep)))
+    (let ((deleted nil))
+      (dolist (oldtarball oldtarballs)
+        ;; Delete old non-compressed tarballs.
+        (let ((file (cdr oldtarball)))
+          (when (string-match "\\.\\(tar\\|el\\)\\'" file)
+            ;; Make sure we don't delete the file we just created.
+            (cl-assert (not (equal file (file-name-nondirectory tarball))))
+            (if (file-readable-p (concat file ".lz"))
+                (progn (push oldtarball deleted) (delete-file file))
+              ;; FIXME: This should never happen.
+              (message "!!Tarball without matching compressed file: %s" file)
+              (elpaa--call nil "lzip" (expand-file-name file destdir))
+              (setf (cdr oldtarball) (concat file ".lz"))))))
+      (setq oldtarballs (cl-set-difference oldtarballs deleted))))
   oldtarballs)
 
 (defun elpaa--report-failure ( pkg-spec metadata txt basename destdir

Reply via email to