emacs: allow extraConfig to reference extraPackages

This fixes the issue described in

  https://github.com/nix-community/home-manager/pull/1758#issuecomment-1113706592
This commit is contained in:
midchildan 2022-04-30 18:04:08 +09:00 committed by Robert Helgesson
parent 51ea4217f7
commit 64831f938b
No known key found for this signature in database
GPG key ID: 36BDAA14C2797E89
2 changed files with 28 additions and 12 deletions

View file

@ -13,11 +13,15 @@ let
emacsWithPackages = emacsPackages.emacsWithPackages;
createConfPackage = epkgs:
epkgs.trivialBuild {
pname = "default";
src = pkgs.writeText "default.el" cfg.extraConfig;
};
extraPackages = epkgs:
let
packages = cfg.extraPackages epkgs;
userConfig = epkgs.trivialBuild {
pname = "default";
src = pkgs.writeText "default.el" cfg.extraConfig;
packageRequires = packages;
};
in packages ++ optional (cfg.extraConfig != "") userConfig;
in {
meta.maintainers = [ maintainers.rycee ];
@ -91,10 +95,6 @@ in {
config = mkIf cfg.enable {
home.packages = [ cfg.finalPackage ];
programs.emacs = {
finalPackage = emacsWithPackages cfg.extraPackages;
extraPackages = epkgs:
optional (cfg.extraConfig != "") (createConfPackage epkgs);
};
programs.emacs.finalPackage = emacsWithPackages extraPackages;
};
}