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