From a041d16de8b9ae5b6aab7844a53984cba486e21d Mon Sep 17 00:00:00 2001 From: "Ross A. Baker" Date: Thu, 12 Dec 2019 20:07:33 -0500 Subject: [PATCH] Make work on runCommand-based emacsWithPackages --- default.nix | 47 ++++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/default.nix b/default.nix index 47c9123..233a78d 100644 --- a/default.nix +++ b/default.nix @@ -190,7 +190,18 @@ let ''; }; - # Stage 4: catch-all wrapper capable to run doom-emacs even + # Stage 4: `extraConfig` is merged into private configuration + doomDir = pkgs.runCommand "doom-private" { + inherit extraConfig; + passAsFile = [ "extraConfig" ]; + } '' + mkdir -p $out + cp ${doomPrivateDir}/* $out + chmod u+w $out/config.el + cat $extraConfigPath >> $out/config.el + ''; + + # Stage 5: catch-all wrapper capable to run doom-emacs even # without installing ~/.emacs.d emacs = let load-config-from-site = writeTextDir "share/emacs/site-lisp/default.el" '' @@ -201,27 +212,17 @@ let (load "${doom-emacs}/init.el") ''; - # `extraConfig` is merged into private configuration - doomDir = pkgs.runCommand "doom-private" { - inherit extraConfig; - passAsFile = [ "extraConfig" ]; - } '' - mkdir -p $out - cp ${doomPrivateDir}/* $out - chmod u+w $out/config.el - cat $extraConfigPath >> $out/config.el - ''; in (emacsPackages.emacsWithPackages (epkgs: [ load-config-from-site - ])).overrideAttrs (super: { - outputs = [ "out" "emacsd" ]; - buildInputs = [ doom-emacs ]; - installPhase = super.installPhase + '' - ln -snf ${doom-emacs} $emacsd - for prog in $out/bin/*; do - wrapProgram $prog --set DOOMDIR ${doomDir} - done - ''; - }); - -in emacs + ])); +in +pkgs.runCommand "doom-emacs" { + inherit doom-emacs emacs; + buildInputs = [ emacs ]; + nativeBuildInputs = [ makeWrapper ]; +} '' + mkdir -p $out/bin + for prog in $emacs/bin/*; do + makeWrapper $prog $out/bin/$(basename $prog) --set DOOMDIR ${doomDir} + done + ''