Files
nix-doom-emacs/patches/nix-integration.patch
Thiago Kenji Okada f63432b89b Update patches
2022-08-09 20:54:42 +01:00

154 lines
6.7 KiB
Diff

From 4a98147cd1c74398347900312d9a9b8766c7b632 Mon Sep 17 00:00:00 2001
From: Thiago Kenji Okada <thiagokokada@gmail.com>
Date: Fri, 29 Jul 2022 10:32:00 +0100
Subject: [PATCH] Nix integration
---
early-init.el | 55 +-------------------------------------------
lisp/doom-cli-lib.el | 2 +-
lisp/doom.el | 18 +++++----------
3 files changed, 8 insertions(+), 67 deletions(-)
diff --git a/early-init.el b/early-init.el
index 4335f8db1..c6c29cdd5 100644
--- a/early-init.el
+++ b/early-init.el
@@ -73,60 +73,7 @@
;;
;;; Detect `user-emacs-directory'
-;; Prevent recursive profile processing, in case you're loading a Doom profile.
-(unless (boundp 'doom-version)
- ;; Not using `command-switch-alist' to process --profile and --init-directory
- ;; was intentional. `command-switch-alist' is processed too late at startup to
- ;; change `user-emacs-directory' in time.
-
- ;; DEPRECATED Backported from 29. Remove this when 27/28 support is removed.
- (let ((initdir (or (cadr (member "--init-directory" command-line-args))
- (getenv-internal "EMACSDIR"))))
- (when initdir
- ;; Discard the switch to prevent "invalid option" errors later.
- (add-to-list 'command-switch-alist (cons "--init-directory" (lambda (_) (pop argv))))
- (setq user-emacs-directory initdir)))
-
- (let ((profile (or (cadr (member "--profile" command-line-args))
- (getenv-internal "DOOMPROFILE"))))
- (when profile
- ;; Discard the switch to prevent "invalid option" errors later.
- (add-to-list 'command-switch-alist (cons "--profile" (lambda (_) (pop argv))))
- ;; While processing the requested profile, Doom loosely expects
- ;; `user-emacs-directory' to be changed. If it doesn't, then you're using
- ;; profiles.el as a glorified, runtime dir-locals.el (which is fine, if
- ;; intended).
- (catch 'found
- (let ((profiles-file (expand-file-name "profiles.el" user-emacs-directory)))
- (when (file-exists-p profiles-file)
- (with-temp-buffer
- (let ((coding-system-for-read 'utf-8-auto))
- (insert-file-contents profiles-file))
- (condition-case-unless-debug e
- (let ((profile-data (cdr (assq (intern profile) (read (current-buffer))))))
- (dolist (var profile-data (if profile-data (throw 'found t)))
- (if (eq (car var) 'env)
- (dolist (env (cdr var)) (setenv (car env) (cdr env)))
- (set (car var) (cdr var)))))
- (error (error "Failed to parse profiles.el: %s" (error-message-string e))))))
- ;; If the requested profile isn't in profiles.el, then see if
- ;; $EMACSDIR/profiles/$DOOMPROFILE exists. These are implicit
- ;; profiles, where `emacs --profile foo` will be equivalent to `emacs
- ;; --init-directory $EMACSDIR/profile/foo', if that directory exists.
- (let ((profile-dir
- (expand-file-name
- profile (or (getenv-internal "DOOMPROFILESDIR")
- (expand-file-name "profiles/" user-emacs-directory)))))
- (when (file-directory-p profile-dir)
- (setq user-emacs-directory profile-dir)
- (throw 'found t)))
-
- (user-error "No %S profile found" profile)))
-
- (when init-file-debug
- (message "Selected profile: %s" profile))
- ;; Ensure the selected profile persists through the session
- (setenv "DOOMPROFILE" profile))))
+(setq user-emacs-directory (file-name-directory load-file-name))
;;
diff --git a/lisp/doom-cli-lib.el b/lisp/doom-cli-lib.el
index 309a1fa88..97129d7c0 100644
--- a/lisp/doom-cli-lib.el
+++ b/lisp/doom-cli-lib.el
@@ -116,7 +116,7 @@ If nil, falls back to less.")
Only applies if (exit! :pager) or (exit! :pager?) are called.")
-(defvar doom-cli-log-file-format (expand-file-name "logs/cli.%s.%s.%s" doom-local-dir)
+(defvar doom-cli-log-file-format (expand-file-name "logs/cli.%s.%s.%s" doom-cache-dir)
"Where to write any output/log file to.
Must have two arguments, one for session id and the other for log type.")
diff --git a/lisp/doom.el b/lisp/doom.el
index 981190612..26baf8b33 100644
--- a/lisp/doom.el
+++ b/lisp/doom.el
@@ -132,15 +132,7 @@
(defconst doom-docs-dir (concat doom-emacs-dir "docs/")
"Where Doom's documentation files are stored. Must end with a slash.")
-(defconst doom-private-dir
- (if-let (doomdir (getenv-internal "DOOMDIR"))
- (expand-file-name (file-name-as-directory doomdir))
- (or (let ((xdgdir
- (expand-file-name "doom/"
- (or (getenv-internal "XDG_CONFIG_HOME")
- "~/.config"))))
- (if (file-directory-p xdgdir) xdgdir))
- "~/.doom.d/"))
+(defconst doom-private-dir (expand-file-name (file-name-as-directory (getenv-internal "DOOMDIR")))
"Where your private configuration is placed.
Defaults to ~/.config/doom, ~/.doom.d or the value of the DOOMDIR envvar;
@@ -209,7 +201,7 @@ downloaded/installed by packages. Must end in a slash.")
(expand-file-name (file-name-as-directory localdir))
(if doom-profile
doom-profile-dir
- (expand-file-name ".local/" doom-emacs-dir)))
+ "@local@/"))
"Root directory for local storage.
Use this as a storage location for this system's installation of Doom Emacs.
@@ -217,10 +209,11 @@ Use this as a storage location for this system's installation of Doom Emacs.
These files should not be shared across systems. By default, it is used by
`doom-etc-dir' and `doom-cache-dir'. Must end with a slash.")
+; nix-doom-emacs: This doesn't meet XDG but backwards compatibility is a thing.
(defconst doom-etc-dir
(if doom-profile
doom-profile-data-dir
- (concat doom-local-dir "etc/"))
+ "~/.local/doom")
"Directory for non-volatile local storage.
Use this for files that don't change much, like server binaries, external
@@ -229,7 +222,7 @@ dependencies or long-term shared data. Must end with a slash.")
(defconst doom-cache-dir
(if doom-profile
doom-profile-cache-dir
- (concat doom-local-dir "cache/"))
+ "~/.cache/doom")
"Directory for volatile local storage.
Use this for files that change often, like cache files. Must end with a slash.")
@@ -295,6 +288,7 @@ users).")
;; Don't store eln files in ~/.emacs.d/eln-cache (where they can easily be
;; deleted by 'doom upgrade').
(add-to-list 'native-comp-eln-load-path (concat doom-cache-dir "eln/"))
+ (add-to-list 'native-comp-eln-load-path (concat doom-cache-dir "cache/eln/"))
(with-eval-after-load 'comp
;; HACK Disable native-compilation for some troublesome packages
--
2.36.0