This is experimental. I'd eventually like users to be able to management Doom from inside Emacs, if they desire. This may be the only way to have a decent user experience on Windows, for that matter. Also adds a popup rule for it.
66 lines
1.8 KiB
EmacsLisp
66 lines
1.8 KiB
EmacsLisp
;;; core/autoload/cli.el -*- lexical-binding: t; -*-
|
|
|
|
(require 'core-cli)
|
|
|
|
(defun doom--run (command &optional yes)
|
|
(let ((default-directory doom-emacs-dir)
|
|
(doom-auto-accept yes))
|
|
(let ((compilation-buffer-name-function (lambda (_) "*bin/doom*")))
|
|
(compile (format "bin/doom %s" command) t))
|
|
(while compilation-in-progress
|
|
(sit-for 1))
|
|
(when (y-or-n-p "Reload Doom config?")
|
|
(doom/reload))
|
|
(message "Done")))
|
|
|
|
|
|
;;;###autoload
|
|
(defun doom//update (&optional yes)
|
|
"TODO"
|
|
(interactive "P")
|
|
(doom--run "update" yes))
|
|
|
|
;;;###autoload
|
|
(defun doom//upgrade (&optional yes)
|
|
"TODO"
|
|
(interactive "P")
|
|
(doom--run "upgrade" yes))
|
|
|
|
;;;###autoload
|
|
(defun doom//install (&optional yes)
|
|
"TODO"
|
|
(interactive "P")
|
|
(doom--run "install" yes))
|
|
|
|
;;;###autoload
|
|
(defun doom//autoremove (&optional yes)
|
|
"TODO"
|
|
(interactive "P")
|
|
(doom--run "autoremove" yes))
|
|
|
|
;;;###autoload
|
|
(defun doom//refresh (&optional yes)
|
|
"TODO"
|
|
(interactive "P")
|
|
(doom--run "refresh" yes))
|
|
|
|
;;;###autoload
|
|
(defun doom/reload (&optional force-p)
|
|
"Reloads your config. This is experimental!
|
|
|
|
If called from a noninteractive session, this will try to communicate with a
|
|
live server (if one is found) to tell it to run this function.
|
|
|
|
If called from an interactive session, tries to reload autoloads files (if
|
|
necessary), reinistalize doom (via `doom-initialize') and reloads your private
|
|
init.el and config.el. Then runs `doom-reload-hook'."
|
|
(interactive "P")
|
|
(require 'core-cli)
|
|
(doom-reload-autoloads force-p)
|
|
(setq load-path doom-site-load-path)
|
|
(let (doom-init-p)
|
|
(doom-initialize))
|
|
(with-demoted-errors "PRIVATE CONFIG ERROR: %s"
|
|
(doom-initialize-modules 'force))
|
|
(run-hook-wrapped 'doom-reload-hook #'doom-try-run-hook)
|
|
(message "Finished!"))
|