Replace exec-path-from-shell

This commit is contained in:
Zelong Kuang
2025-12-22 13:13:21 +11:00
parent 937394e2b4
commit cdfb970b89
2 changed files with 51 additions and 5 deletions

View File

@@ -1,4 +1,6 @@
;; -*- lexical-binding: t -*-
;;; init.el --- This is the -*- lexical-binding: t -*-
;;; Commentary:
;;; blablabla
(require 'init-better-default)
@@ -32,3 +34,8 @@
(require 'init-haskell)
(require 'init-rust)
(require 'init-ocaml)
(provide 'init)
;;; Code:
;;; alskdjasd
;;; init.el ends here

View File

@@ -7,10 +7,49 @@
;; To disable collection of benchmark data after init is done.
(add-hook 'elpaca-after-init-hook 'benchmark-init/deactivate))
(use-package exec-path-from-shell
:init
(when (memq window-system '(mac ns x))
(exec-path-from-shell-initialize)))
(defconst my-local-dir (concat user-emacs-directory ".local/"))
(defconst my-env-file (concat my-local-dir "env"))
(defun my-load-envvars-file (file &optional noerror)
"Read and set envvars from FILE.
If NOERROR is non-nil, don't throw an error if the file doesn't exist or is
unreadable. Returns the names of envvars that were changed."
(if (not (file-readable-p file))
(unless noerror
(signal 'file-error (list "Couldn't read envvar file" file)))
(let (envvars environment)
(with-temp-buffer
(save-excursion
(insert "\n")
(insert-file-contents file))
(while (re-search-forward "\n *\\([^#= \n]*\\)=" nil t)
(push (match-string 1) envvars)
(push (buffer-substring
(match-beginning 1)
(1- (or (save-excursion
(when (re-search-forward "^\\([^= ]+\\)=" nil t)
(line-beginning-position)))
(point-max))))
environment)))
(when environment
(setq process-environment
(append (nreverse environment) process-environment)
exec-path
(if (member "PATH" envvars)
(append (split-string (getenv "PATH") path-separator t)
(list exec-directory))
exec-path)
shell-file-name
(if (member "SHELL" envvars)
(or (getenv "SHELL") shell-file-name)
shell-file-name))
envvars))))
(when (and (or (display-graphic-p)
(daemonp))
(file-exists-p my-env-file))
(my-load-envvars-file my-env-file))
(setq custom-file (expand-file-name "~/.emacs.d/custom.el"))
(add-hook 'elpaca-after-init-hook (lambda () (load custom-file 'no-error 'no-message)))