diff options
author | Sean Devlin <spd@toadstyle.org> | 2024-10-21 11:28:06 -0400 |
---|---|---|
committer | Philip Kaludercic <philipk@posteo.net> | 2024-11-21 22:12:32 +0100 |
commit | b4e2d9a3af3dbd0ac7fa944e9386f667feb1c124 (patch) | |
tree | 619788e12eac854c6e393733169397818bb002c6 /lisp/emacs-lisp | |
parent | 7cb77385d38b96377d404a2ab0e778b2dfce5c77 (diff) | |
download | emacs-b4e2d9a3af3dbd0ac7fa944e9386f667feb1c124.tar.gz emacs-b4e2d9a3af3dbd0ac7fa944e9386f667feb1c124.tar.bz2 emacs-b4e2d9a3af3dbd0ac7fa944e9386f667feb1c124.zip |
Add noconfirm to 'package-autoremove'
* lisp/emacs-lisp/package.el (package-autoremove):
Add optional argument NOCONFIRM to skip user confirmation when removing
packages.
* etc/NEWS: Announce the new argument. (Bug#73932)
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/package.el | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index af07ba44e28..4403e5ffb63 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -2616,26 +2616,31 @@ are invalid due to changed byte-code, macros or the like." (package-recompile pkg-desc)))) ;;;###autoload -(defun package-autoremove () +(defun package-autoremove (&optional noconfirm) "Remove packages that are no longer needed. Packages that are no more needed by other packages in `package-selected-packages' and their dependencies -will be deleted." - (interactive) +will be deleted. + +If optional argument NOCONFIRM is non-nil, or when invoked with a prefix +argument, don't ask for confirmation to install packages." + (interactive "P") ;; If `package-selected-packages' is nil, it would make no sense to ;; try to populate it here, because then `package-autoremove' will ;; do absolutely nothing. - (when (or package-selected-packages + (when (or noconfirm + package-selected-packages (yes-or-no-p (format-message "`package-selected-packages' is empty! Really remove ALL packages? "))) (let ((removable (package--removable-packages))) (if removable - (when (y-or-n-p - (format "Packages to delete: %d (%s), proceed? " - (length removable) - (mapconcat #'symbol-name removable " "))) + (when (or noconfirm + (y-or-n-p + (format "Packages to delete: %d (%s), proceed? " + (length removable) + (mapconcat #'symbol-name removable " ")))) (mapc (lambda (p) (package-delete (cadr (assq p package-alist)) t)) removable)) |