feat!(cli): load project .doomrc instead of ci.el

BREAKING CHANGE: Before, 'doom ci' would load
$GIT_WORKING_TREE/.github/ci.el, to give users/projects an opportunity
to provide project-local configuration for bin/doom (mainly for CI/CD).
Now, this ci.el file is no longer loaded and instead, *all* bin/doom
sessions will walk up the file tree and load the first .doomrc it finds.

This gives bin/doom users a more general place configure all of its
commands, and not just 'doom ci' commands.

Extras:
- Adds .doomrc to auto-mode-alist (so that it starts in
  emacs-lisp-mode).
This commit is contained in:
Henrik Lissner 2022-08-07 18:54:48 +02:00
parent 422baedad7
commit 9b8ed397e8
No known key found for this signature in database
GPG key ID: B60957CA074D39A3
4 changed files with 18 additions and 20 deletions

View file

@ -247,20 +247,6 @@ Note: warnings are not considered failures.")
;;; Commands
;;; doom ci
(defcli! (:before ci) (&args _)
(when-let*
((repo-root
(if-let* ((result (sh! "git" "rev-parse" "--show-toplevel"))
((zerop (car result))))
(cdr result)
default-directory))
(local-config
(car (or (doom-glob repo-root "ci.el")
(doom-glob doom-private-dir "ci.el")))))
(defgroup! :prefix '(doom ci)
(load local-config nil t t))
(print! (item "Loaded %S") local-config)))
(defcli! ci (&args _)
"Commands that automate development processes."
:partial t)

View file

@ -143,7 +143,8 @@ If RETURN-P, return the message as a string instead of displaying it."
(float-time (time-subtract (current-time) before-init-time))))))
;; Add support for additional file extensions.
(dolist (entry '(("/LICENSE\\'" . text-mode)
(dolist (entry '(("/\\.doomrc\\'" . emacs-lisp-mode)
("/LICENSE\\'" . text-mode)
("\\.log\\'" . text-mode)
("rc\\'" . conf-mode)
("\\.\\(?:hex\\|nes\\)\\'" . hexl-mode)))