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:
parent
07dfe2703c
commit
49fb34d1c1
1 changed files with 15 additions and 12 deletions
|
@ -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.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue