doctor: don't regard disabled/ignored packages

And refactor error handling.
This commit is contained in:
Henrik Lissner 2018-06-26 18:09:51 +02:00
parent 79e155a2a8
commit 81753150a7
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -282,7 +282,7 @@
(require 'core-packages) (require 'core-packages)
(doom-initialize-packages) (doom-initialize-packages)
(success! "Attempt to load DOOM: success! Loaded v%s" doom-version)) (success! "Attempt to load DOOM: success! Loaded v%s" doom-version))
('error (error
(warn! "Attempt to load DOOM: failed\n %s\n" (warn! "Attempt to load DOOM: failed\n %s\n"
(or (cdr-safe ex) (car ex))) (or (cdr-safe ex) (car ex)))
(setq doom-modules nil))) (setq doom-modules nil)))
@ -293,22 +293,25 @@
(advice-add #'require :around #'doom*shut-up) (advice-add #'require :around #'doom*shut-up)
(maphash (maphash
(lambda (key plist) (lambda (key plist)
(let ((prefix (format "%s" (color 1 "(%s %s) " (car key) (cdr key)))))
(condition-case ex (condition-case ex
(let ((doctor-file (doom-module-path (car key) (cdr key) "doctor.el")) (let ((doctor-file (doom-module-path (car key) (cdr key) "doctor.el"))
(packages-file (doom-module-path (car key) (cdr key) "packages.el")) (packages-file (doom-module-path (car key) (cdr key) "packages.el"))
doom-packages) doom-packages)
(when (or (file-exists-p doctor-file) (when (or (file-exists-p doctor-file)
(file-exists-p packages-file)) (file-exists-p packages-file))
(let ((prefix (format "%s" (color 1 "(%s %s) " (car key) (cdr key)))) (let ((doom--stage 'packages))
(doom--stage 'packages))
(when (load packages-file t t) (when (load packages-file t t)
(dolist (package (cl-remove-if #'package-installed-p doom-packages :key #'car)) (cl-loop for (name . plist) in doom-packages
(unless (package-built-in-p (car package)) unless (or (doom-package-prop name :disable)
(error! "%s is not installed" (car package))))) (doom-package-prop name :ignore t)
(package-built-in-p name)
(package-installed-p name))
do (error! "%s is not installed" (car package))))
(let ((doom--stage 'doctor)) (let ((doom--stage 'doctor))
(load doctor-file t t))))) (load doctor-file t t)))))
('error (file-missing (error! "%s" (error-message-string ex)))
(error! "(%s %s) Syntax error: %s" (car key) (cdr key) ex)))) (error (error! "Syntax error: %s" ex)))))
doom-modules))) doom-modules)))
;; ;;