Package management: color-coded feedback to stdout in terminal

This commit is contained in:
Henrik Lissner 2017-04-12 08:53:54 -04:00
parent a1625eaf73
commit 6e6f1a6698

View file

@ -221,30 +221,27 @@ appropriate."
"ELPA"))) "ELPA")))
(sort (cl-copy-list packages) 'doom--sort-alpha) (sort (cl-copy-list packages) 'doom--sort-alpha)
"\n"))))) "\n")))))
(message "Aborted!")) (message! (yellow "Aborted!")))
(t (t
(message "Installing %s packages" (length packages))
(dolist (pkg packages) (dolist (pkg packages)
(condition-case ex (condition-case ex
(progn (message! (cond ((package-installed-p (car pkg))
(message "%s %s (%s)" (dark (white "[%%s] Skipped %%s (already installed)")))
(cond ((package-installed-p (car pkg)) ((doom-install-package (car pkg) (cdr pkg))
"Skipped (already installed)") (green "[%%s] Installed %%s"))
((doom-install-package (car pkg) (cdr pkg)) (t
"Installed") (red "[%%s] Failed to install %%s")))
(t "Failed to install")) (pcase (doom-package-backend (car pkg))
(concat (symbol-name (car pkg)) ('quelpa "QUELPA")
(when (plist-member (cdr pkg) :pin) ('elpa "ELPA"))
(format " [pinned: %s]" (plist-get (cdr pkg) :pin)))) (concat (symbol-name (car pkg))
(pcase (doom-package-backend (car pkg)) (when (plist-member (cdr pkg) :pin)
('quelpa "QUELPA") (format " [pinned: %s]" (plist-get (cdr pkg) :pin)))))
('elpa "ELPA")))) ('error
(error (message! (red "Error (%s): %s" (car pkg) ex)))))
(message "Error (%s): %s" (car pkg) ex))))
(message "Finished!") (message! (bold (green "\n---\nFinished!")))
(doom/reload))))) (doom/reload)))))
;;;###autoload ;;;###autoload
@ -253,7 +250,7 @@ appropriate."
(interactive) (interactive)
(let ((packages (sort (doom-get-outdated-packages) 'doom--sort-alpha))) (let ((packages (sort (doom-get-outdated-packages) 'doom--sort-alpha)))
(cond ((not packages) (cond ((not packages)
(message "Everything is up-to-date")) (message! (green "Everything is up-to-date")))
((not (or (getenv "YES") ((not (or (getenv "YES")
(y-or-n-p (y-or-n-p
@ -271,21 +268,21 @@ appropriate."
(package-version-join (cl-caddr pkg)))) (package-version-join (cl-caddr pkg))))
packages packages
"\n")))))) "\n"))))))
(message "Aborted!")) (message! (yellow "Aborted!")))
(t (t
(dolist (pkg packages) (dolist (pkg packages)
(condition-case ex (condition-case ex
(progn (message!
(message "%s %s" (let ((result (doom-update-package (car pkg))))
(if (doom-update-package (car pkg)) (ansi-apply (if result 'green 'red)
"Updated" "%s %s"
"Failed to update") (if result "Updated" "Failed to update")
(car pkg))) (car pkg))))
(error ('error
(message "Error installing %s: %s" (car pkg) ex)))) (message! (bold (red "Error installing %s: %s" (car pkg) ex))))))
(message "Finished!") (message! (bold (green "\n---\nFinished!")))
(doom/reload))))) (doom/reload)))))
;;;###autoload ;;;###autoload
@ -294,7 +291,7 @@ appropriate."
(interactive) (interactive)
(let ((packages (doom-get-orphaned-packages))) (let ((packages (doom-get-orphaned-packages)))
(cond ((not packages) (cond ((not packages)
(message "No unused packages to remove")) (message! (green "No unused packages to remove")))
((not (or (getenv "YES") ((not (or (getenv "YES")
(y-or-n-p (y-or-n-p
@ -303,20 +300,20 @@ appropriate."
(mapconcat (lambda (sym) (format "+ %s" (symbol-name sym))) (mapconcat (lambda (sym) (format "+ %s" (symbol-name sym)))
(sort (cl-copy-list packages) 'string-lessp) (sort (cl-copy-list packages) 'string-lessp)
"\n"))))) "\n")))))
(message "Aborted!")) (message! (yellow "Aborted!")))
(t (t
(dolist (pkg packages) (dolist (pkg packages)
(condition-case ex (condition-case ex
(message "%s %s" (message "%s %s"
(if (doom-delete-package pkg t) (if (doom-delete-package pkg t)
"Deleted" "Deleted"
"Failed to delete") "Failed to delete")
pkg) pkg)
(error ('error
(message "Error deleting %s: %s" pkg ex)))) (message! (red "Error deleting %s: %s" pkg ex)))))
(message "Finished!") (message! (bold (green "\n---\nFinished!")))
(doom/reload))))) (doom/reload)))))
;;;###autoload ;;;###autoload
@ -338,9 +335,7 @@ Use this interactively. Use `doom-delete-package' for direct calls."
(if (package-installed-p package) (if (package-installed-p package)
(if (y-or-n-p (format "%s will be deleted. Confirm?" package)) (if (y-or-n-p (format "%s will be deleted. Confirm?" package))
(message "%s %s" (message "%s %s"
(if (doom-delete-package package) (if (doom-delete-package package) "Deleted" "Failed to delete")
"Deleted"
"Failed to delete")
pkg) pkg)
(message "Aborted")) (message "Aborted"))
(message "%s isn't installed" package))) (message "%s isn't installed" package)))