Update
This commit is contained in:
@@ -7,64 +7,11 @@
|
||||
;; To disable collection of benchmark data after init is done.
|
||||
(add-hook 'elpaca-after-init-hook 'benchmark-init/deactivate))
|
||||
|
||||
(defconst my-local-dir (concat user-emacs-directory ".local/"))
|
||||
(when (memq window-system '(mac ns x))
|
||||
(use-package exec-path-from-shell
|
||||
:init
|
||||
(exec-path-from-shell-initialize)))
|
||||
|
||||
(defconst my-env-file (concat my-local-dir "env"))
|
||||
|
||||
(defun my/generate-envvars-file ()
|
||||
"Generate environment variables file at ~/.emacs.d/.local/env."
|
||||
(interactive)
|
||||
;; Ensure the directory exists
|
||||
(unless (file-exists-p my-local-dir)
|
||||
(make-directory my-local-dir t))
|
||||
|
||||
;; Run printenv and redirect output to the env file
|
||||
(with-temp-buffer
|
||||
(call-process "printenv" nil t nil)
|
||||
(write-region (point-min) (point-max) my-env-file nil 'silent))
|
||||
|
||||
(message "Environment variables saved to %s" my-env-file))
|
||||
|
||||
(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)))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user