Allow configurable BRIEFCASE env var for CI

These were hard-coded as $HOME/BRIEFCASE, which won't work in CI, since CI runs
as the user buildkite-agent-socrates, whose $HOME directory doesn't exist.
This commit is contained in:
William Carroll 2020-08-31 01:16:31 +01:00
parent 8f46684c23
commit e166e74c2c
2 changed files with 55 additions and 38 deletions

View file

@ -134,40 +134,48 @@ let
name = "init.el";
};
withEmacsPath = emacsBin: pkgs.writeShellScriptBin "wpcarros-emacs" ''
export XMODIFIERS=emacs
export BRIEFCASE=$HOME/briefcase
export PATH="${emacsBinPath}:$PATH"
export EMACSLOADPATH="${wpcDir}:${vendorDir}:${wpcarrosEmacs.deps}/share/emacs/site-lisp:"
exec ${emacsBin} \
--debug-init \
--no-site-file \
--no-site-lisp \
--load ${initEl} \
--no-init-file \
"$@"
'';
withEmacsPath = { emacsBin, briefcasePath }:
pkgs.writeShellScriptBin "wpcarros-emacs" ''
export XMODIFIERS=emacs
export BRIEFCASE=${briefcasePath}
export PATH="${emacsBinPath}:$PATH"
export EMACSLOADPATH="${wpcDir}:${vendorDir}:${wpcarrosEmacs.deps}/share/emacs/site-lisp:"
exec ${emacsBin} \
--debug-init \
--no-site-file \
--no-site-lisp \
--load ${initEl} \
--no-init-file \
"$@"
'';
in {
inherit initEl;
# I need to start my Emacs from CI without the call to `--load ${initEl}`.
runScript = script: pkgs.writeShellScript "run-emacs-script" ''
export BRIEFCASE=$HOME/briefcase
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} \
"$@"
'';
runScript = { script, briefcasePath }:
pkgs.writeShellScript "run-emacs-script" ''
export BRIEFCASE=${briefcasePath}
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} \
"$@"
'';
# Use `nix-env -f '<briefcase>' emacs.glinux` to install `wpcarro-emacs` on
# gLinux machines. This will ensure that X and GL linkage behaves as expected.
glinux = withEmacsPath "/usr/bin/google-emacs";
glinux = { briefcasePath ? "$HOME/briefcase" }: withEmacsPath {
inherit briefcasePath;
emacsBin = "/usr/bin/google-emacs";
};
# Use `nix-env -f '<briefcase>' emacs.nixos` to install `wpcarros-emacs` on
# NixOS machines.
nixos = withEmacsPath "${wpcarrosEmacs}/bin/emacs";
nixos = { briefcasePath ? "$HOME/briefcase" }: withEmacsPath {
inherit briefcasePath;
emacsBin = "${wpcarrosEmacs}/bin/emacs";
};
}