From 334852e5cd7f526c93b2ad7061bd56c0326d136f Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Tue, 7 Nov 2017 11:46:34 +0100 Subject: [PATCH] Catch use-modules errors in configuration. * gnu.scm (use-package-modules, use-service-modules, use-system-modules): Catch use-modules errors and show a small explanation about it. --- gnu.scm | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/gnu.scm b/gnu.scm index 913ce6160..3de04fd8a 100644 --- a/gnu.scm +++ b/gnu.scm @@ -52,13 +52,32 @@ (module-use! i (resolve-interface m)))) %public-modules))) +(define (import-error type module syntax) + (error (string-append + type " module \"" module "\" does not exist.\n" + "Check the \"" syntax "\" line in your configuration."))) + (define-syntax-rule (use-package-modules module ...) - (use-modules (gnu packages module) ...)) + (begin + (catch #t (lambda () (use-modules (gnu packages module))) + (lambda _ + (import-error "Package" (symbol->string 'module) "use-package-modules"))) + ...)) (define-syntax-rule (use-service-modules module ...) - (use-modules (gnu services module) ...)) + (begin + (catch #t (lambda () (use-modules (gnu services module))) + (lambda _ + (import-error "Service" (symbol->string 'module) "use-service-modules"))) + ...)) + (define-syntax-rule (use-system-modules module ...) - (use-modules (gnu system module) ...)) + (begin + (catch #t (lambda () (use-modules (gnu system module))) + (lambda _ + (import-error "System" (symbol->string 'module) "use-system-modules"))) + ...)) + ;;; gnu.scm ends here -- 2.13.6