[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] elpa-admin 7558d12 206/357: Make externals directory removal safe
From: |
Stefan Monnier |
Subject: |
[elpa] elpa-admin 7558d12 206/357: Make externals directory removal safer |
Date: |
Thu, 10 Dec 2020 18:06:44 -0500 (EST) |
branch: elpa-admin
commit 7558d1285eb1f4d71e4b5949f2f9d9caa0b3db8b
Author: Thomas Fitzsimmons <fitzsim@fitzsim.org>
Commit: Thomas Fitzsimmons <fitzsim@fitzsim.org>
Make externals directory removal safer
* admin/archive-contents.el (archive--find-non-trivial-file): New
function.
(archive--cleanup-packages): Check result of
archive--find-non-trivial-file before deleting untracked package.
---
admin/archive-contents.el | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
diff --git a/admin/archive-contents.el b/admin/archive-contents.el
index feb646a..2181aba 100755
--- a/admin/archive-contents.el
+++ b/admin/archive-contents.el
@@ -589,6 +589,17 @@ Rename DIR/ to PKG-VERS/, and return the descriptor."
"Point EMACS_CLONE_REFERENCE environment variable to an "
"existing checkout.") reference)))))
+(defun archive--find-non-trivial-file (dir)
+ (catch 'found-important-file
+ (dolist (file (directory-files-recursively dir ".*"))
+ (unless (or (member file '("." ".."))
+ (string-match "\\.elc\\'" file)
+ (string-match "-autoloads.el\\'" file)
+ (string-match "-pkg.el\\'" file)
+ (file-symlink-p file))
+ (throw 'found-important-file file)))
+ nil))
+
(defun archive--cleanup-packages (externals-list)
"Remove subdirectories of `packages/' that do not correspond to known
packages.
This is any subdirectory inside `packages/' that's not under
@@ -615,8 +626,15 @@ version control nor listed in EXTERNALS-LIST."
;; Check if `dir' is under version control.
((not (zerop (call-process "git" nil nil nil
"ls-files" "--error-unmatch" dir)))
- (message "Deleted untracked package %s" dir)
- (delete-directory dir 'recursive t))))))
+ ;; Not under version control. Check if it only contains
+ ;; symlinks and generated files, in which case it is probably
+ ;; a leftover :core package that can safely be deleted.
+ (let ((file (archive--find-non-trivial-file dir)))
+ (if file
+ (message "Keeping %s for non-trivial file \"%s\"" dir file)
+ (progn
+ (message "Deleted untracked package %s" dir)
+ (delete-directory dir 'recursive t)))))))))
(defun archive--external-package-sync (name)
"Sync external package named NAME."
- [elpa] elpa-admin f9ce2f8 328/357: Merge commit 'b2c449c0d5aad67eeee9857e7fd7710f985084ec', (continued)
- [elpa] elpa-admin f9ce2f8 328/357: Merge commit 'b2c449c0d5aad67eeee9857e7fd7710f985084ec', Stefan Monnier, 2020/12/10
- [elpa] elpa-admin e48de90 332/357: * README: Fix typos., Stefan Monnier, 2020/12/10
- [elpa] elpa-admin 223f7eb 331/357: * README: Clarify deployment process., Stefan Monnier, 2020/12/10
- [elpa] elpa-admin d19a5b8 341/357: * README.org: New file, Stefan Monnier, 2020/12/10
- [elpa] elpa-admin b3e663b 353/357: Rename ELisp files, Stefan Monnier, 2020/12/10
- [elpa] elpa-admin 4ade74d 346/357: * README.org: Add license and an introduction., Stefan Monnier, 2020/12/10
- [elpa] elpa-admin 4a3a7c2 193/357: * README: Improve subtree instructions, Stefan Monnier, 2020/12/10
- [elpa] elpa-admin 54886a6 199/357: Better generated HTML pages, Stefan Monnier, 2020/12/10
- [elpa] elpa-admin 5e9fdd4 197/357: * README: Revert change about package.el headers, Stefan Monnier, 2020/12/10
- [elpa] elpa-admin 3a394c3 188/357: Merge commit 'd76bcd7c0dcecb33e6955e25963028600c371588', Stefan Monnier, 2020/12/10
- [elpa] elpa-admin 7558d12 206/357: Make externals directory removal safer,
Stefan Monnier <=
- [elpa] elpa-admin a8b876c 207/357: * admin/archive-contents.el: Make :core handling optional, Stefan Monnier, 2020/12/10
- [elpa] elpa-admin 3a129d5 190/357: Add support to build packages from Emacs repo, Stefan Monnier, 2020/12/10
- [elpa] elpa-admin 581dd5b 231/357: Fix a typo in the readme, Stefan Monnier, 2020/12/10
- [elpa] elpa-admin f79a619 218/357: * packages/gnome-c-style/gnome-c-tests.el: Add copyright blurb, Stefan Monnier, 2020/12/10
- [elpa] elpa-admin 28819e8 192/357: Skip uninteresting elements, Stefan Monnier, 2020/12/10
- [elpa] elpa-admin 345dc39 189/357: * GNUmakefile: Use LC_ALL rather than LANG, Stefan Monnier, 2020/12/10
- [elpa] elpa-admin 368a212 219/357: Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs/elpa, Stefan Monnier, 2020/12/10
- [elpa] elpa-admin 7edd6ff 205/357: Dereference symlinks when creating tarballs, Stefan Monnier, 2020/12/10
- [elpa] elpa-admin 2f122b0 251/357: Merge branch 'master' into new-website, Stefan Monnier, 2020/12/10
- [elpa] elpa-admin da3bd64 263/357: [admin int] Use ‘archive--read-externals-list’ more., Stefan Monnier, 2020/12/10