Move prelude-modules.el under personal directory

Prelude modules are required by the definition file `prelude-modules.el`.
This file should be part of personal configuration.

Therefore:

- implemented loading of `personal/prelude-modules.el` in favour of
  loading `prelude-modules.el`;
- added a check for presence of both old and new files;
- adjusted documentation;
- adjusted the installer.

Closes #1206.
This commit is contained in:
Andrei Beliankou 2018-11-20 22:39:57 +01:00 committed by Bozhidar Batsov
parent d798ba4dc7
commit 454fade724
4 changed files with 28 additions and 14 deletions

1
.gitignore vendored
View file

@ -15,7 +15,6 @@ custom.el
places places
.smex-items .smex-items
savefile/ savefile/
/prelude-modules.el
projectile-bookmarks.eld projectile-bookmarks.eld
session* session*
.cask .cask

View file

@ -104,8 +104,9 @@ Note that the installer will back up any existing `.emacs` file or
you're doing a manual install make sure you don't have a `.emacs` file you're doing a manual install make sure you don't have a `.emacs` file
or back up your existing `.emacs.d` directory manually. or back up your existing `.emacs.d` directory manually.
Don't forget to adjust your `prelude-modules.el` file once the installation is done. Don't forget to adjust your `prelude-modules.el` file in your personal directory
By default most of the modules that ship with Prelude are not loaded. once the installation is done. By default most of the modules
that ship with Prelude are not loaded.
## Installing Emacs ## Installing Emacs
@ -222,8 +223,8 @@ By default most of the modules that ship with Prelude are not loaded. For more i
You'll need to adjust your `prelude-modules.el` file once the You'll need to adjust your `prelude-modules.el` file once the
installation is done. If you are doing a manual install then you first installation is done. If you are doing a manual install then you first
need to copy the `prelude-modules.el` available in the sample need to copy the `prelude-modules.el` available in the sample
directory to the root of `path/to/prelude/installation` and then directory to the `personal` directory under `path/to/prelude/installation`
adjust that one. and then adjust that one.
After you've uncommented a module you should either restart Emacs or evaluate the module After you've uncommented a module you should either restart Emacs or evaluate the module
`require` expression with <kbd>C-x C-e</kbd>. `require` expression with <kbd>C-x C-e</kbd>.
@ -553,7 +554,7 @@ lexicographical order. The overall loading precedence is:
1. `personal/preload/*` 1. `personal/preload/*`
2. `core/` 2. `core/`
3. `prelude-modules.el` 3. `personal/prelude-modules.el` (or deprecated `prelude-modules.el`)
4. `personal/*` 4. `personal/*`
#### Personalization Example #### Personalization Example

22
init.el
View file

@ -69,8 +69,13 @@ by Prelude.")
"This directory houses packages that are not yet available in ELPA (or MELPA).") "This directory houses packages that are not yet available in ELPA (or MELPA).")
(defvar prelude-savefile-dir (expand-file-name "savefile" prelude-dir) (defvar prelude-savefile-dir (expand-file-name "savefile" prelude-dir)
"This folder stores all the automatically generated save/history-files.") "This folder stores all the automatically generated save/history-files.")
(defvar prelude-modules-file (expand-file-name "prelude-modules.el" prelude-dir) (defvar prelude-modules-file (expand-file-name "prelude-modules.el" prelude-personal-dir)
"This files contains a list of modules that will be loaded by Prelude.") "This file contains a list of modules that will be loaded by Prelude.")
(defvar prelude-deprecated-modules-file
(expand-file-name "prelude-modules.el" prelude-dir)
(format "This file may contain a list of Prelude modules.
This is DEPRECATED, use %s instead." prelude-modules-file))
(unless (file-exists-p prelude-savefile-dir) (unless (file-exists-p prelude-savefile-dir)
(make-directory prelude-savefile-dir)) (make-directory prelude-savefile-dir))
@ -125,9 +130,18 @@ by Prelude.")
;; the modules ;; the modules
(if (file-exists-p prelude-modules-file) (if (file-exists-p prelude-modules-file)
(progn
(load prelude-modules-file) (load prelude-modules-file)
(if (file-exists-p prelude-deprecated-modules-file)
(message "Loading new modules configuration, ignoring DEPRECATED prelude-module.el")))
(if (file-exists-p prelude-deprecated-modules-file)
(progn
(load prelude-deprecated-modules-file)
(message (format "The use of %s is DEPRECATED! Use %s instead!"
prelude-deprecated-modules-file
prelude-modules-file)))
(message "Missing modules file %s" prelude-modules-file) (message "Missing modules file %s" prelude-modules-file)
(message "You can get started by copying the bundled example file from sample/prelude-modules.el")) (message "You can get started by copying the bundled example file from sample/prelude-modules.el")))
;; config changes made through the customize UI will be stored here ;; config changes made through the customize UI will be stored here
(setq custom-file (expand-file-name "custom.el" prelude-personal-dir)) (setq custom-file (expand-file-name "custom.el" prelude-personal-dir))
@ -135,7 +149,7 @@ by Prelude.")
;; load the personal settings (this includes `custom-file') ;; load the personal settings (this includes `custom-file')
(when (file-exists-p prelude-personal-dir) (when (file-exists-p prelude-personal-dir)
(message "Loading personal configuration files in %s..." prelude-personal-dir) (message "Loading personal configuration files in %s..." prelude-personal-dir)
(mapc 'load (directory-files prelude-personal-dir 't "^[^#\.].*el$"))) (mapc 'load (directory-files prelude-personal-dir 't "^[^#\.].*el$|^prelude-modules\.el$")))
(message "Prelude is ready to do thy bidding, Master %s!" current-user) (message "Prelude is ready to do thy bidding, Master %s!" current-user)

View file

@ -202,7 +202,7 @@ then
make_prelude_dirs make_prelude_dirs
# Reinstate files that weren't replaced # Reinstate files that weren't replaced
tar --skip-old-files -xf "$PRELUDE_INSTALL_DIR_ORIG.pre-prelude.tar" "$PRELUDE_INSTALL_DIR" > /dev/null 2>&1 tar --skip-old-files -xf "$PRELUDE_INSTALL_DIR_ORIG.pre-prelude.tar" "$PRELUDE_INSTALL_DIR" > /dev/null 2>&1
[ -n "$PRELUDE_INTO" ] && cp "$PRELUDE_INSTALL_DIR/sample/prelude-modules.el" "$PRELUDE_INSTALL_DIR" [ -n "$PRELUDE_INTO" ] && cp "$PRELUDE_INSTALL_DIR/sample/prelude-modules.el" "$PRELUDE_INSTALL_DIR/personal"
elif [ -e "$PRELUDE_INSTALL_DIR" ] elif [ -e "$PRELUDE_INSTALL_DIR" ]
then then
# File exist but not a regular file or directory # File exist but not a regular file or directory
@ -215,7 +215,7 @@ else
# Nothing yet so just install prelude # Nothing yet so just install prelude
install_prelude install_prelude
make_prelude_dirs make_prelude_dirs
cp "$PRELUDE_INSTALL_DIR/sample/prelude-modules.el" "$PRELUDE_INSTALL_DIR" cp "$PRELUDE_INSTALL_DIR/sample/prelude-modules.el" "$PRELUDE_INSTALL_DIR/personal"
fi fi
if [ -z "$PRELUDE_SKIP_BC" ]; if [ -z "$PRELUDE_SKIP_BC" ];