From 9e08097119b62c3e9caf55ce4960fd0628c4cf2a Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 21 Feb 2023 20:17:43 -0500 Subject: [PATCH] fix(cli): doctor: wrong-type-argument stringp error `doom doctor` throws a type error for enabled modules without a doctor.el and/or packages.el file. This occurs because, in in775ee2f04aad, `doom-module-expand-path` was changed to return nil if the target file did not exist, and the doctor wasn't updated to handle this. It passes `nil` to `load`, causing this type error. Amend: 775ee2f04aad --- lisp/cli/doctor.el | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/lisp/cli/doctor.el b/lisp/cli/doctor.el index 2a90c470d..2fd367c6a 100644 --- a/lisp/cli/doctor.el +++ b/lisp/cli/doctor.el @@ -246,21 +246,23 @@ in." (doom-module-context-with (cons group name) (let ((doctor-file (doom-module-expand-path group name "doctor.el")) (packages-file (doom-module-expand-path group name doom-module-packages-file))) - (cl-loop with doom-output-indent = 6 - for name in (doom-context-with 'packages - (let* (doom-packages - doom-disabled-packages) - (load packages-file 'noerror 'nomessage) - (mapcar #'car doom-packages))) - unless (or (doom-package-get name :disable) - (eval (doom-package-get name :ignore)) - (plist-member (doom-package-get name :recipe) :local-repo) - (locate-library (symbol-name name)) - (doom-package-built-in-p name) - (doom-package-installed-p name)) - do (print! (error "Missing emacs package: %S") name)) - (let ((inhibit-message t)) - (load doctor-file 'noerror 'nomessage)))) + (when packages-file + (cl-loop with doom-output-indent = 6 + for name in (doom-context-with 'packages + (let* (doom-packages + doom-disabled-packages) + (load packages-file 'noerror 'nomessage) + (mapcar #'car doom-packages))) + unless (or (doom-package-get name :disable) + (eval (doom-package-get name :ignore)) + (plist-member (doom-package-get name :recipe) :local-repo) + (locate-library (symbol-name name)) + (doom-package-built-in-p name) + (doom-package-installed-p name)) + do (print! (error "Missing emacs package: %S") name))) + (when doctor-file + (let ((inhibit-message t)) + (load doctor-file 'noerror 'nomessage))))) (file-missing (error! "%s" (error-message-string ex))) (error (error! "Syntax error: %s" ex))) (when (or doom-doctor--errors doom-doctor--warnings)