From 6ceedaaee4d39bf595c5ae5418b38fb7d03df06f Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Wed, 17 Aug 2016 18:19:58 +0000 Subject: [PATCH] emacs: add versatile "emacsWrapper" "emacsWrapper" replaces emacsWithPackages. In addition to "packagesFun", emacsWrapper has an optional variable called "execStart". execStart can be used to append elisp to the default site-start.el script. This is useful for providing a way to load a user's .emacs.d/init.el file. "emacsWithPackages" is implemented with emacsWrapper for convenience and compatability. --- pkgs/build-support/emacs/wrapper.nix | 8 ++++++-- pkgs/top-level/emacs-packages.nix | 6 ++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/pkgs/build-support/emacs/wrapper.nix b/pkgs/build-support/emacs/wrapper.nix index 45931e6914ad..cc3ea8990431 100644 --- a/pkgs/build-support/emacs/wrapper.nix +++ b/pkgs/build-support/emacs/wrapper.nix @@ -36,7 +36,10 @@ in customEmacsPackages.emacsWithPackages (epkgs: [ epkgs.evil epkgs.magit ]) with lib; let inherit (self) emacs; in -packagesFun: # packages explicitly requested by the user +{ + packagesFun ? [], # packages explicitly requested by the user + extraStart ? "" +}: let explicitRequires = @@ -53,7 +56,7 @@ stdenv.mkDerivation { # Store all paths we want to add to emacs here, so that we only need to add # one path to the load lists deps = runCommand "emacs-packages-deps" - { inherit explicitRequires lndir emacs; } + { inherit explicitRequires lndir emacs extraStart; } '' mkdir -p $out/bin mkdir -p $out/share/emacs/site-lisp @@ -96,6 +99,7 @@ stdenv.mkDerivation { (load-file "$emacs/share/emacs/site-lisp/site-start.el") (add-to-list 'load-path "$out/share/emacs/site-lisp") (add-to-list 'exec-path "$out/bin") +$extraStart EOF # Byte-compiling improves start-up time only slightly, but costs nothing. diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index d2e3d2b866f9..ef616f37e0c0 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -63,7 +63,7 @@ let inherit fetchurl lib stdenv texinfo; }; - emacsWithPackages = import ../build-support/emacs/wrapper.nix { + emacsWrapper = import ../build-support/emacs/wrapper.nix { inherit lib lndir makeWrapper stdenv runCommand; }; @@ -71,7 +71,9 @@ let inherit emacs melpaBuild trivialBuild; - emacsWithPackages = emacsWithPackages self; + emacsWrapper = emacsWrapper self; + + emacsWithPackages = packagesFun: emacsWrapper { inherit packagesFun; }; ## START HERE