feat(wpcarro/emacs): Test that my Emacs can initialize
...without warnings, errors. This was previously a step in my buildkite instance, but I'm no longer supporting that (in favor of the TVL one). Change-Id: Ifed39aef248b21a1eb5a6c9d8427ebe6996abc3a Reviewed-on: https://cl.tvl.fyi/c/depot/+/5103 Tested-by: BuildkiteCI Reviewed-by: wpcarro <wpcarro@gmail.com> Autosubmit: wpcarro <wpcarro@gmail.com>
This commit is contained in:
parent
d2052ff753
commit
4b8998c9c8
3 changed files with 23 additions and 29 deletions
44
users/wpcarro/emacs/ci.el
Normal file
44
users/wpcarro/emacs/ci.el
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
;; 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)
|
||||
|
|
@ -165,25 +165,34 @@ let
|
|||
--load ${initEl} \
|
||||
"$@"
|
||||
'';
|
||||
in {
|
||||
inherit initEl withEmacsPath;
|
||||
|
||||
# I need to start my Emacs from CI without the call to `--load ${initEl}`.
|
||||
runScript = { script }:
|
||||
writeShellScript "run-emacs-script" ''
|
||||
export PATH="${emacsBinPath}:$PATH"
|
||||
export EMACSLOADPATH="${wpcDir}:${vendorDir}:${wpcarrosEmacs.deps}/share/emacs/site-lisp"
|
||||
exec ${wpcarrosEmacs}/bin/emacs \
|
||||
--no-site-file \
|
||||
--no-site-lisp \
|
||||
--no-init-file \
|
||||
--script ${script} \
|
||||
"$@"
|
||||
# I need this to start my Emacs from CI without the call to
|
||||
# `--load ${initEl}`.
|
||||
runScript = script: writeShellScript "run-emacs-script" ''
|
||||
export PATH="${emacsBinPath}:$PATH"
|
||||
export EMACSLOADPATH="${loadPath}"
|
||||
exec ${wpcarrosEmacs}/bin/emacs \
|
||||
--no-site-file \
|
||||
--no-site-lisp \
|
||||
--no-init-file \
|
||||
--script ${script} \
|
||||
"$@"
|
||||
'';
|
||||
|
||||
in {
|
||||
inherit withEmacsPath;
|
||||
|
||||
nixos = withEmacsPath {
|
||||
emacsBin = "${wpcarrosEmacs}/bin/emacs";
|
||||
};
|
||||
|
||||
meta.targets = [ "nixos" ];
|
||||
meta = {
|
||||
targets = [ "nixos" ];
|
||||
extraSteps = [
|
||||
{
|
||||
label = ":gnu: initialize Emacs";
|
||||
command = "${runScript ./ci.el} ${./.emacs.d/init.el}";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue