mirror of
https://github.com/nix-community/nix-doom-emacs
synced 2025-08-13 13:13:36 -05:00
Make work on runCommand-based emacsWithPackages
This commit is contained in:
45
default.nix
45
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
|
# without installing ~/.emacs.d
|
||||||
emacs = let
|
emacs = let
|
||||||
load-config-from-site = writeTextDir "share/emacs/site-lisp/default.el" ''
|
load-config-from-site = writeTextDir "share/emacs/site-lisp/default.el" ''
|
||||||
@@ -201,27 +212,17 @@ let
|
|||||||
(load "${doom-emacs}/init.el")
|
(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: [
|
in (emacsPackages.emacsWithPackages (epkgs: [
|
||||||
load-config-from-site
|
load-config-from-site
|
||||||
])).overrideAttrs (super: {
|
]));
|
||||||
outputs = [ "out" "emacsd" ];
|
in
|
||||||
buildInputs = [ doom-emacs ];
|
pkgs.runCommand "doom-emacs" {
|
||||||
installPhase = super.installPhase + ''
|
inherit doom-emacs emacs;
|
||||||
ln -snf ${doom-emacs} $emacsd
|
buildInputs = [ emacs ];
|
||||||
for prog in $out/bin/*; do
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
wrapProgram $prog --set DOOMDIR ${doomDir}
|
} ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
for prog in $emacs/bin/*; do
|
||||||
|
makeWrapper $prog $out/bin/$(basename $prog) --set DOOMDIR ${doomDir}
|
||||||
done
|
done
|
||||||
'';
|
''
|
||||||
});
|
|
||||||
|
|
||||||
in emacs
|
|
||||||
|
Reference in New Issue
Block a user