Fix 'doom purge' trying to purge site packages

It should only manage packages installed in
doom-elpa-dir (~/.emacs.d/.local/elpa, by default).
This commit is contained in:
Henrik Lissner 2019-09-02 13:12:57 -04:00
parent 07dfe2703c
commit 49fb34d1c1
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -422,18 +422,21 @@ a list of packages that will be updated."
(defun doom--packages-purge-elpa (&optional auto-accept-p)
(unless (bound-and-true-p package--initialized)
(package-initialize))
(if (not package-alist)
(progn (print! (info "No ELPA packages to purge"))
0)
(doom--prompt-columns-p
(lambda (p) (format " + %-20.20s" p))
(mapcar #'car package-alist) nil
(format! "Found %d orphaned ELPA packages. Purge them?"
(length package-alist)))
(mapc (doom-rpartial #'delete-directory 'recursive)
(mapcar #'package-desc-dir
(mapcar #'cadr package-alist)))
(length package-alist)))
(let ((packages (cl-loop for (package . desc) in package-alist
for dir = (package-desc-dir desc)
if (file-in-directory-p dir doom-elpa-dir)
collect (cons package dir))))
(if (not package-alist)
(progn (print! (info "No ELPA packages to purge"))
0)
(doom--prompt-columns-p
(lambda (p) (format " + %-20.20s" p))
(mapcar #'car packages) nil
(format! "Found %d orphaned ELPA packages. Purge them?"
(length package-alist)))
(mapc (doom-rpartial #'delete-directory 'recursive)
(mapcar #'cdr packages))
(length packages))))
(defun doom-packages-purge (&optional elpa-p builds-p repos-p auto-accept-p)
"Auto-removes orphaned packages and repos.