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)
 |