refactor: only process --init-directory w/o --profile
Using them both makes no sense, so don't process --init-directory if --profile is given.
This commit is contained in:
parent
21f2ad58b5
commit
b8cca048c4
1 changed files with 19 additions and 20 deletions
|
@ -51,28 +51,27 @@
|
|||
;; notable saving in startup time. This let-binding is just a stopgap though,
|
||||
;; a more complete version of this optimization can be found in lisp/doom.el.
|
||||
(let (file-name-handler-alist)
|
||||
;; FEAT: First, we process --init-directory and --profile to detect what
|
||||
;; `user-emacs-directory' to load from. I avoid using
|
||||
;; `command-switch-alist' to process --profile and --init-directory because
|
||||
;; it is processed too late to change `user-emacs-directory' in time.
|
||||
;; First, we process --init-directory and --profile to detect what
|
||||
;; `user-emacs-directory' to load from. I avoid using `command-switch-alist'
|
||||
;; to process --profile and --init-directory because it is processed too late
|
||||
;; to change `user-emacs-directory' in time.
|
||||
(let ((profile (or (cadr (member "--profile" command-line-args))
|
||||
(getenv-internal "DOOMPROFILE"))))
|
||||
(if (null profile)
|
||||
;; REVIEW: Backported from Emacs 29. Remove when 28 support is dropped.
|
||||
(let ((initdir (or (cadr (member "--init-directory" command-line-args))
|
||||
(let ((init-dir (or (cadr (member "--init-directory" command-line-args))
|
||||
(getenv-internal "EMACSDIR"))))
|
||||
(if (null initdir)
|
||||
(if (null init-dir)
|
||||
;; FIX: If we've been loaded directly (via 'emacs -batch -l
|
||||
;; early-init.el') or by a doomscript (like bin/doom), and Doom is
|
||||
;; in a non-standard location (and/or Chemacs is used), then
|
||||
;; early-init.el') or by a doomscript (like bin/doom), and Doom
|
||||
;; is in a non-standard location (and/or Chemacs is used), then
|
||||
;; `user-emacs-directory' will be wrong.
|
||||
(when noninteractive
|
||||
(setq user-emacs-directory
|
||||
(file-name-directory (file-truename load-file-name))))
|
||||
;; FIX: Discard the switch to prevent "invalid option" errors later.
|
||||
;; FIX: To prevent "invalid option" errors later.
|
||||
(push (cons "--init-directory" (lambda (_) (pop argv))) command-switch-alist)
|
||||
(setq user-emacs-directory (expand-file-name initdir))))
|
||||
;; Initialize a known profile, if requested.
|
||||
(let ((profile (or (cadr (member "--profile" command-line-args))
|
||||
(getenv-internal "DOOMPROFILE"))))
|
||||
(when profile
|
||||
(setq user-emacs-directory (expand-file-name init-dir))))
|
||||
;; FIX: Discard the switch to prevent "invalid option" errors later.
|
||||
(push (cons "--profile" (lambda (_) (pop argv))) command-switch-alist)
|
||||
;; Running 'doom sync' will (re)generate a lightweight profile
|
||||
|
|
Loading…
Reference in a new issue