71e57700d6
Problem: `(bufferp "*Warnings*")` always returns `nil` because it expects a buffer object. Thankfully I wrote a function called `buffer-exists?`, which is a more DWIM alternative of `bufferp`. Hopefully now CI should fail!
44 lines
1.4 KiB
EmacsLisp
44 lines
1.4 KiB
EmacsLisp
;; This script initializes Emacs and exits with either a zero or non-zero status
|
|
;; depending on whether or not Emacs initialized without logging warnings or
|
|
;; encountering errors.
|
|
;;
|
|
;; This script reads the location of init.el as the last argument in `argv'.
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; Dependencies
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
(require 'prelude)
|
|
(require 'f)
|
|
(require 'dash)
|
|
(require 'buffer)
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; Script
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
(defvar init-el-path (-last-item argv)
|
|
"Path to the init.el file that this script attempts to load.")
|
|
|
|
(prelude-assert (f-exists? init-el-path))
|
|
|
|
(condition-case err
|
|
(load init-el-path)
|
|
(error
|
|
(message "Encountered an error while attempting to load init.el: %s" err)
|
|
(kill-emacs 1)))
|
|
|
|
(when (buffer-exists? "*Errors*")
|
|
(progn
|
|
(with-current-buffer "*Errors*"
|
|
(message "Encountered errors in *Errors* buffer: %s" (buffer-string)))
|
|
(kill-emacs 1)))
|
|
|
|
(when (buffer-exists? "*Warnings*")
|
|
(progn
|
|
(with-current-buffer "*Warnings*"
|
|
(message "Encountered warnings in *Warnings* buffer: %s" (buffer-string)))
|
|
(kill-emacs 1)))
|
|
|
|
(message "Successfully init'd Emacs without encountering errors or warnings!")
|
|
(kill-emacs 0)
|