feat(cli): introduce DOOMPROFILELOAD{FILE,PATH} envvars

- Adds $DOOMPROFILELOADFILE: Controls where to read and write the
  profile loader. Changing this may be helpful for users on nix/guix,
  who have deployed Doom to a read-only location. This sets
  `doom-profile-load-file`.
- Changed profile load file's default location (used to be
  $EMACSDIR/profiles/init.el, is now $EMACSDIR/profiles/load.el). The
  gitignore was updated to reflect this.
- Adds $DOOMPROFILELOADPATH: A colon-delimited list of profile config
  files and directories (semi-colon on Windows) which dictate what Doom
  reads in order to discover your profiles. Config files are required to
  have an *.el extension. This sets `doom-profile-load-path`.
- Changes the nomenclature around this loader script. I used to refer to
  it as the profile bootstrapper. I'll now refer to it as the profile
  load file, and I've renamed `doom-profiles-bootstrap-file` to
  `doom-profile-load-file` to reflect this.
- The variables `doom-profile-dirs` and `doom-profile-config-files` were
  merged into doom-profile-load-path.
- Both envvars have also been documented in `doom help` (and
  $DOOMPROFILE's has been updated).

Ref: #6794
This commit is contained in:
Henrik Lissner 2022-09-17 22:02:50 +02:00
parent 7fc0cbff5e
commit f99cf0ccc8
No known key found for this signature in database
GPG key ID: B60957CA074D39A3
5 changed files with 76 additions and 51 deletions

View file

@ -139,11 +139,24 @@ ENVIRONMENT VARIABLES:
option also sets this variable.
`$DOOMPROFILE'
(Not implemented yet) Which Doom profile to activate (default: \"current\").
Which Doom profile to activate (default: \"_@0\"). The `--profile' option
also sets this variable.
`$DOOMPROFILESDIR'
(Not implemented yet) Where to find or write generated Doom profiles
(default: `$EMACSDIR'/profiles).
`$DOOMPROFILELOADFILE'
Doom generates a profile loader script on 'doom sync' or 'doom profiles
sync'. By default, this file is written to and loaded from
$EMACSDIR/profiles/load.el. Set this envvar to change that. Note that this
envvar must be in scope for both interactive and non-interactive sessions
for it to be effective. This is especially useful for folks on Nix/Guix, who
have deployed Doom to a read-only directory.
Note: this file *must* end with a .el extension. It will be byte-compiled
after it is generated.
`$DOOMPROFILELOADPATH'
A colon-delimited (semi-colon on Windows) list of profile config files or
directories under which Doom will search for implicit profiles. See
`var:doom-profile-load-path' for its default value.
EXIT CODES:
0 Successful run