diff --git a/core/autoload/packages.el b/core/autoload/packages.el index f5f6f7efa..09f55b420 100644 --- a/core/autoload/packages.el +++ b/core/autoload/packages.el @@ -26,15 +26,15 @@ (condition-case ex2 (progn ,@body) ('file-error - (message! (bold (red " FILE ERROR: %s" (error-message-string ex2)))) - (message! " Trying again...") + (print! (bold (red " FILE ERROR: %s" (error-message-string ex2)))) + (print! " Trying again...") (quiet! (doom-refresh-packages-maybe t)) ,@body)) ('user-error - (message! (bold (red " ERROR: %s" ex)))) + (print! (bold (red " ERROR: %s" ex)))) ('error (doom--refresh-pkg-cache) - (message! (bold (red " FATAL ERROR: %s" ex)))))) + (print! (bold (red " FATAL ERROR: %s" ex)))))) (defun doom--refresh-pkg-cache () "Clear the cache for `doom-refresh-packages-maybe'." @@ -336,152 +336,147 @@ package.el as appropriate." (defun doom//packages-install () "Interactive command for installing missing packages." (interactive) - (if (not noninteractive) - (doom-packages--async-run 'doom//packages-install) - (message! "Looking for packages to install...") - (let ((packages (reverse (doom-get-missing-packages)))) - (cond ((not packages) - (message! (green "No packages to install!")) - nil) + (doom-initialize-packages) + (print! "Looking for packages to install...") + (let ((packages (reverse (doom-get-missing-packages)))) + (cond ((not packages) + (print! (green "No packages to install!")) + nil) - ((not (or (getenv "YES") - (y-or-n-p - (format "%s packages will be installed:\n\n%s\n\nProceed?" - (length packages) - (mapconcat - (lambda (pkg) - (format "+ %s (%s)" - (car pkg) - (cond ((doom-package-different-recipe-p (car pkg)) - "new recipe") - ((doom-package-different-backend-p (car pkg)) - (if (plist-get (cdr pkg) :recipe) - "ELPA -> QUELPA" - "QUELPA -> ELPA")) - ((plist-get (cdr pkg) :recipe) - "QUELPA") - (t - "ELPA")))) - (sort (cl-copy-list packages) #'doom--sort-alpha) - "\n"))))) - (message! (yellow "Aborted!")) - nil) + ((not (or (getenv "YES") + (y-or-n-p + (format "%s packages will be installed:\n\n%s\n\nProceed?" + (length packages) + (mapconcat + (lambda (pkg) + (format "+ %s (%s)" + (car pkg) + (cond ((doom-package-different-recipe-p (car pkg)) + "new recipe") + ((doom-package-different-backend-p (car pkg)) + (if (plist-get (cdr pkg) :recipe) + "ELPA -> QUELPA" + "QUELPA -> ELPA")) + ((plist-get (cdr pkg) :recipe) + "QUELPA") + (t + "ELPA")))) + (sort (cl-copy-list packages) #'doom--sort-alpha) + "\n"))))) + (error "Aborted!")) - (t + ((let (success) (doom-refresh-packages-maybe doom-debug-mode) (dolist (pkg packages) - (message! "Installing %s" (car pkg)) + (print! "Installing %s" (car pkg)) (doom--condition-case! - (message! "%s%s" + (print! "%s%s" (if (and (package-installed-p (car pkg)) (not (doom-package-different-backend-p (car pkg))) (not (doom-package-different-recipe-p (car pkg)))) (dark (white "⚠ ALREADY INSTALLED")) (condition-case e (if (doom-install-package (car pkg) (cdr pkg)) - (green "✓ DONE") + (prog1 (green "✓ DONE") + (setq success t)) (red "✕ FAILED")) (error (red "✕ ERROR (%s)" e)))) (if (plist-member (cdr pkg) :pin) (format " [pinned: %s]" (plist-get (cdr pkg) :pin)) "")))) - - (message! (bold (green "Finished!"))) + (print! (bold (green "Finished!"))) (doom//reload-load-path) - t))))) + success))))) ;;;###autoload (defun doom//packages-update () "Interactive command for updating packages." (interactive) - (if (not noninteractive) - (doom-packages--async-run 'doom//packages-update) - (message! "Looking for outdated packages...") - (doom-refresh-packages-maybe doom-debug-mode) - (let ((packages (sort (doom-get-outdated-packages) #'doom--sort-alpha))) - (cond ((not packages) - (message! (green "Everything is up-to-date")) - nil) + (doom-initialize-packages) + (print! "Looking for outdated packages...") + (doom-refresh-packages-maybe doom-debug-mode) + (let ((packages (sort (doom-get-outdated-packages) #'doom--sort-alpha))) + (cond ((not packages) + (print! (green "Everything is up-to-date")) + nil) - ((not (or (getenv "YES") - (y-or-n-p - (format "%s packages will be updated:\n\n%s\n\nProceed?" - (length packages) - (let ((max-len - (or (car (sort (mapcar (lambda (it) (length (symbol-name (car it)))) packages) - (lambda (it other) (> it other)))) - 10))) - (mapconcat - (lambda (pkg) - (format (format "+ %%-%ds %%-%ds -> %%s" (+ max-len 2) 14) - (symbol-name (car pkg)) - (package-version-join (cadr pkg)) - (package-version-join (cl-caddr pkg)))) - packages - "\n")))))) - (message! (yellow "Aborted!")) - nil) + ((not (or (getenv "YES") + (y-or-n-p + (format "%s packages will be updated:\n\n%s\n\nProceed?" + (length packages) + (let ((max-len + (or (car (sort (mapcar (lambda (it) (length (symbol-name (car it)))) packages) + (lambda (it other) (> it other)))) + 10))) + (mapconcat + (lambda (pkg) + (format (format "+ %%-%ds %%-%ds -> %%s" (+ max-len 2) 14) + (symbol-name (car pkg)) + (package-version-join (cadr pkg)) + (package-version-join (cl-caddr pkg)))) + packages + "\n")))))) + (error "Aborted!")) - (t + ((let (success) (dolist (pkg packages) - (message! "Updating %s" (car pkg)) + (print! "Updating %s" (car pkg)) (doom--condition-case! - (message! + (print! (let ((result (doom-update-package (car pkg) t))) + (when result (setq success t)) (color (if result 'green 'red) (if result "✓ DONE" "✕ FAILED")))))) - - (message! (bold (green "Finished!"))) + (print! (bold (green "Finished!"))) (doom//reload-load-path) - t))))) + success))))) ;;;###autoload (defun doom//packages-autoremove () "Interactive command for auto-removing orphaned packages." (interactive) - (if (not noninteractive) - (doom-packages--async-run 'doom//packages-autoremove) - (message! "Looking for orphaned packages...") - (let ((packages (doom-get-orphaned-packages))) - (cond ((not packages) - (message! (green "No unused packages to remove")) - nil) + (doom-initialize-packages) + (print! "Looking for orphaned packages...") + (let ((packages (doom-get-orphaned-packages))) + (cond ((not packages) + (print! (green "No unused packages to remove")) + nil) - ((not - (or (getenv "YES") - (y-or-n-p - (format - "%s packages will be deleted:\n\n%s\n\nProceed?" - (length packages) - (mapconcat - (lambda (sym) - (format "+ %s (%s)" sym - (let ((backend (doom-package-backend sym))) - (if (doom-package-different-backend-p sym) - (pcase backend - (`quelpa "QUELPA->ELPA") - (`elpa "ELPA->QUELPA") - (_ "removed")) - (upcase (symbol-name backend)))))) - (sort (cl-copy-list packages) #'string-lessp) - "\n"))))) - (message! (yellow "Aborted!")) - nil) + ((not + (or (getenv "YES") + (y-or-n-p + (format + "%s packages will be deleted:\n\n%s\n\nProceed?" + (length packages) + (mapconcat + (lambda (sym) + (format "+ %s (%s)" sym + (let ((backend (doom-package-backend sym))) + (if (doom-package-different-backend-p sym) + (pcase backend + (`quelpa "QUELPA->ELPA") + (`elpa "ELPA->QUELPA") + (_ "removed")) + (upcase (symbol-name backend)))))) + (sort (cl-copy-list packages) #'string-lessp) + "\n"))))) + (error "Aborted!")) - (t + ((let (success) (dolist (pkg packages) (doom--condition-case! - (message! + (print! (let ((result (doom-delete-package pkg t))) + (when result (setq success t)) (color (if result 'green 'red) "%s %s" (if result "✓ Removed" "✕ Failed to remove") pkg))))) - (message! (bold (green "Finished!"))) + (print! (bold (green "Finished!"))) (doom//reload-load-path) - t))))) + success))))) ;;