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) (defun doom--packages-purge-elpa (&optional auto-accept-p)
(unless (bound-and-true-p package--initialized) (unless (bound-and-true-p package--initialized)
(package-initialize)) (package-initialize))
(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) (if (not package-alist)
(progn (print! (info "No ELPA packages to purge")) (progn (print! (info "No ELPA packages to purge"))
0) 0)
(doom--prompt-columns-p (doom--prompt-columns-p
(lambda (p) (format " + %-20.20s" p)) (lambda (p) (format " + %-20.20s" p))
(mapcar #'car package-alist) nil (mapcar #'car packages) nil
(format! "Found %d orphaned ELPA packages. Purge them?" (format! "Found %d orphaned ELPA packages. Purge them?"
(length package-alist))) (length package-alist)))
(mapc (doom-rpartial #'delete-directory 'recursive) (mapc (doom-rpartial #'delete-directory 'recursive)
(mapcar #'package-desc-dir (mapcar #'cdr packages))
(mapcar #'cadr package-alist))) (length packages))))
(length package-alist)))
(defun doom-packages-purge (&optional elpa-p builds-p repos-p auto-accept-p) (defun doom-packages-purge (&optional elpa-p builds-p repos-p auto-accept-p)
"Auto-removes orphaned packages and repos. "Auto-removes orphaned packages and repos.