doom-enabled-modules => doom-modules

This commit is contained in:
Henrik Lissner 2017-02-06 01:22:54 -05:00
parent bc402868a6
commit 4cdc28da18
2 changed files with 28 additions and 26 deletions

View file

@ -112,10 +112,10 @@ fed to `doom/packages-delete'."
;;;###autoload ;;;###autoload
(defun doom-read-packages (&optional force-p nopackages) (defun doom-read-packages (&optional force-p nopackages)
"Parses your Emacs config to keep track of packages declared with `package!' "Parses your Emacs config to keep track of packages declared with `package!'
in `doom-packages' and enabled modules in `doom-enabled-modules'." in `doom-packages' and enabled modules in `doom-modules'."
(doom-initialize) (doom-initialize)
(when (or force-p (not doom-enabled-modules) (not doom-packages)) (when (or force-p (not doom-modules) (not doom-packages))
(setq doom-enabled-modules (setq doom-modules
(let (paths mode enabled-modules) (let (paths mode enabled-modules)
(--each (doom--scrape-sexps 'doom! (f-expand "init.el" doom-emacs-dir)) (--each (doom--scrape-sexps 'doom! (f-expand "init.el" doom-emacs-dir))
(dolist (module it) (dolist (module it)
@ -144,7 +144,7 @@ in `doom-packages' and enabled modules in `doom-enabled-modules'."
(doom--scrape-sexps 'package! file))) (doom--scrape-sexps 'package! file)))
(append (f-glob "core*.el" doom-core-dir) (append (f-glob "core*.el" doom-core-dir)
(--map (doom-module-path (car it) (cdr it) "packages.el") (--map (doom-module-path (car it) (cdr it) "packages.el")
doom-enabled-modules))))))) doom-modules)))))))
t))) t)))
;;;###autoload ;;;###autoload
@ -168,25 +168,26 @@ in `doom-packages' and enabled modules in `doom-enabled-modules'."
"Installs package NAME with optional quelpa RECIPE (see `quelpa-recipe' for an "Installs package NAME with optional quelpa RECIPE (see `quelpa-recipe' for an
example; the package name can be omitted)." example; the package name can be omitted)."
(doom-refresh-packages) (doom-refresh-packages)
(doom-read-packages)
(when (package-installed-p name) (when (package-installed-p name)
(error "%s is already installed, skipping" name)) (error "%s is already installed, skipping" name))
(when (plist-get plist :disabled) (when (plist-get plist :disabled)
(error "%s is disabled, skipping" name)) (error "%s is disabled, skipping" name))
(when (plist-get plist :load-path) (when (plist-get plist :load-path)
(error "%s has a local load-path, skipping" name)) (error "%s has a local load-path, skipping" name))
(cond ((plist-get plist :recipe) (let ((needs (plist-get plist :needs)))
(let ((recipe (plist-get plist :recipe))) (when (and needs
(when (and recipe (= 0 (mod (length recipe) 2))) (--any-p (not (rassq it doom-modules))
(setq recipe (cons name recipe))) (-list needs)))
(quelpa recipe))) (error "%s doesn't have necessary dependencies (%s), skipping" needs)))
(t (package-install name))) (let ((inhibit-message (not doom-debug-mode)))
(cond ((plist-get plist :recipe)
(let ((recipe (plist-get plist :recipe)))
(when (and recipe (= 0 (mod (length recipe) 2)))
(setq recipe (cons name recipe)))
(quelpa recipe)))
(t (package-install name))))
(cl-pushnew (cons name plist) doom-packages :key 'car) (cl-pushnew (cons name plist) doom-packages :key 'car)
(when (plist-member plist :setup)
(let ((setup (plist-get plist :setup)))
(when (listp setup)
(setq setup (assq (doom-os) setup)))
(when setup
(async-shell-command setup))))
(package-installed-p name)) (package-installed-p name))
(defun doom-update-package (name) (defun doom-update-package (name)
@ -196,7 +197,8 @@ appropriate."
(unless (package-installed-p name) (unless (package-installed-p name)
(error "%s isn't installed" name)) (error "%s isn't installed" name))
(when (doom-package-outdated-p name) (when (doom-package-outdated-p name)
(let (quelpa-modified-p) (let ((inhibit-message (not doom-debug-mode))
quelpa-modified-p)
(pcase (doom-package-backend name) (pcase (doom-package-backend name)
('quelpa ('quelpa
(let ((quelpa-upgrade-p t)) (let ((quelpa-upgrade-p t))

View file

@ -25,7 +25,7 @@
;; ;;
;; See core/autoload/packages.el for more functions. ;; See core/autoload/packages.el for more functions.
(defvar doom-enabled-modules nil (defvar doom-modules nil
"List of enabled modules; each element is a cons cell (MODULE . SUBMODULE), "List of enabled modules; each element is a cons cell (MODULE . SUBMODULE),
where MODULE is the module's property symbol, e.g. :lang, and SUBMODULE is the where MODULE is the module's property symbol, e.g. :lang, and SUBMODULE is the
submodule symbol, e.g. 'evil.") submodule symbol, e.g. 'evil.")
@ -85,11 +85,11 @@ byte-compilation."
((not mode) ((not mode)
(error "No namespace specified on `doom!' for %s" p)) (error "No namespace specified on `doom!' for %s" p))
(t (t
(setq doom-enabled-modules (append doom-enabled-modules (list (cons mode p)))))))) (setq doom-modules (append doom-modules (list (cons mode p))))))))
`(unless noninteractive (unless noninteractive
(let (file-name-handler-alist) `(let (file-name-handler-alist)
,@(mapcar (lambda (pkg) `(load! ,(car pkg) ,(cdr pkg))) ,@(mapcar (lambda (pkg) `(load! ,(car pkg) ,(cdr pkg)))
doom-enabled-modules) doom-modules)
(when (display-graphic-p) (when (display-graphic-p)
(require 'server) (require 'server)
@ -210,7 +210,7 @@ Examples:
file (concat (symbol-name module) ".el"))) file (concat (symbol-name module) ".el")))
(t (t
(cl-pushnew (cons module submodule) (cl-pushnew (cons module submodule)
doom-enabled-modules doom-modules
:test (lambda (x y) (and (eq (car x) (car y)) :test (lambda (x y) (and (eq (car x) (car y))
(eq (cdr x) (cdr y))))) (eq (cdr x) (cdr y)))))
(setq path (doom-module-path module submodule) (setq path (doom-module-path module submodule)
@ -240,7 +240,7 @@ Examples:
;; ;;
(defun doom/reload () (defun doom/reload ()
"Reload `load-path', `doom-enabled-modules' and `doom-packages' by "Reload `load-path', `doom-modules' and `doom-packages' by
reinitializing doom and parsing config files for `package!' and `doom!' calls. reinitializing doom and parsing config files for `package!' and `doom!' calls.
There are few reasons to use this." There are few reasons to use this."
(interactive) (interactive)
@ -269,7 +269,7 @@ the commandline."
((f-exists-p auto-file) ((f-exists-p auto-file)
auto-file))) auto-file)))
(--map (doom-module-path (car it) (cdr it)) (--map (doom-module-path (car it) (cdr it))
doom-enabled-modules))) doom-modules)))
(f-glob "autoload/*.el" doom-core-dir))) (f-glob "autoload/*.el" doom-core-dir)))
(when (f-exists-p generated-autoload-file) (when (f-exists-p generated-autoload-file)
(f-delete generated-autoload-file) (f-delete generated-autoload-file)
@ -300,7 +300,7 @@ There should be a measurable benefit from this, but it may take a while."
(or (string= (f-base it) "config") (or (string= (f-base it) "config")
(string-prefix-p "+" (f-base it)))) (string-prefix-p "+" (f-base it))))
t) t)
doom-enabled-modules))))) doom-modules)))))
(n 0) (n 0)
results) results)
(dolist (file targets) (dolist (file targets)