bin/doom: set user-emacs-directory

Fixes an issue where bin/doom wasn't running from the emacs config it
was located in.
This commit is contained in:
Henrik Lissner 2019-08-27 12:36:58 -04:00
parent b3c9abfc39
commit e6c3a012e8
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -10,6 +10,11 @@
":"; exec $EMACS --script "$0" -- "$@" ":"; exec $EMACS --script "$0" -- "$@"
":"; exit 0 ":"; exit 0
(setq user-emacs-directory
(or (getenv "EMACSDIR")
(expand-file-name "../" (file-name-directory (file-truename load-file-name)))))
(defun usage () (defun usage ()
(with-temp-buffer (with-temp-buffer
(insert (format! "%s %s [COMMAND] [ARGS...]\n" (insert (format! "%s %s [COMMAND] [ARGS...]\n"
@ -42,9 +47,7 @@
(doom--dispatch-help)) (doom--dispatch-help))
;; ;;
(let ((args (cdr (cdr (cdr command-line-args)))) (let ((args (cdr (cdr (cdr command-line-args)))))
(emacs-dir (or (getenv "EMACSDIR")
(expand-file-name "../" (file-name-directory (file-truename load-file-name))))))
;; Parse options ;; Parse options
(while (ignore-errors (string-prefix-p "-" (car args))) (while (ignore-errors (string-prefix-p "-" (car args)))
(pcase (pop args) (pcase (pop args)
@ -68,17 +71,17 @@
(setenv "DOOMLOCALDIR" doom-local-dir) (setenv "DOOMLOCALDIR" doom-local-dir)
(message "DOOMLOCALDIR changed to %s" doom-local-dir)) (message "DOOMLOCALDIR changed to %s" doom-local-dir))
((or "-e" "--emacsd") ((or "-e" "--emacsd")
(setq emacs-dir (expand-file-name (concat (pop args) "/"))) (setq user-emacs-directory (expand-file-name (concat (pop args) "/")))
(message "Emacs directory changed to %s" emacs-dir)) (message "Emacs directory changed to %s" user-emacs-directory))
((or "-y" "--yes") ((or "-y" "--yes")
(setenv "YES" "1") (setenv "YES" "1")
(message "Auto-yes mode on")))) (message "Auto-yes mode on"))))
(unless (file-directory-p emacs-dir) (unless (file-directory-p user-emacs-directory)
(error "%s does not exist" emacs-dir)) (error "%s does not exist" user-emacs-directory))
;; Bootstrap Doom ;; Bootstrap Doom
(load (expand-file-name "core/core.el" emacs-dir) (load (expand-file-name "core/core.el" user-emacs-directory)
nil 'nomessage) nil 'nomessage)
(doom-initialize 'force-p) (doom-initialize 'force-p)
@ -93,7 +96,7 @@
(print! (error "No command detected.\n")) (print! (error "No command detected.\n"))
(usage)) (usage))
((require 'core-cli) ((require 'core-cli)
(let ((default-directory emacs-dir)) (let ((default-directory user-emacs-directory))
(setq argv nil) (setq argv nil)
(condition-case e (condition-case e
(doom-dispatch (car args) (cdr args)) (doom-dispatch (car args) (cdr args))