My personal project and infrastructure archive
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
nomicon/infra/libkookie/home-manager/tests/modules/programs/emacs/extra-config.nix

42 lines
1.1 KiB

{ config, lib, pkgs, ... }:
let
testScript = pkgs.writeText "test.el" ''
;; Emacs won't automatically load default.el when --script is specified
(load "default")
(let* ((test-load-config (eq hm 'home-manager))
(test-load-package (eq (hm-test-fn) 'success))
(is-ok (and test-load-config test-load-package)))
(kill-emacs (if is-ok 0 1)))
'';
emacsBin = "${config.programs.emacs.finalPackage}/bin/emacs";
mkTestPackage = epkgs:
epkgs.trivialBuild {
pname = "hm-test";
src = pkgs.writeText "hm-test.el" ''
(defun hm-test-fn () 'success)
(provide 'hm-test)
'';
};
in lib.mkIf config.test.enableBig {
programs.emacs = {
enable = true;
package = pkgs.emacs-nox;
extraConfig = ''
(require 'hm-test)
(setq hm 'home-manager)
'';
extraPackages = epkgs: [ (mkTestPackage epkgs) ];
};
# running emacs with --script would enable headless mode
nmt.script = ''
if ! ${emacsBin} --script ${testScript}; then
fail "Failed to load default.el."
fi
'';
}