diff options
author | Vincent Ambo <tazjin@google.com> | 2019-12-17T00·00+0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-12-17T00·00+0000 |
commit | 7e0d4d097b1ecf6d506d1397abf21a9a2ddfe9c8 (patch) | |
tree | edaed0faf1d87240d94228c17acab84804021efd | |
parent | 13030cc158698763d68449f6f41305f4d238cf2c (diff) | |
parent | 05168b9a3c8209d900df632e9fc57f7e744e07a4 (diff) |
merge(PR#16): Add override function to run Nix-built Emacs configuration with external Emacs r/169
Say you're on a non-NixOS system and need to run this Emacs configuration, but without using an Emacs from Nix, building ... ```nix tools.emacs.withLocalEmacs "/usr/bin/emacs" ``` ... will create a derivation that does exactly that.
-rw-r--r-- | tools/emacs/default.nix | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/tools/emacs/default.nix b/tools/emacs/default.nix index 8f036208e902..54bd0d80eafe 100644 --- a/tools/emacs/default.nix +++ b/tools/emacs/default.nix @@ -64,6 +64,7 @@ let rainbow-delimiters refine restclient + request sly string-edit swiper @@ -100,4 +101,16 @@ in lib.fix(self: l: f: third_party.writeShellScriptBin "tazjins-emacs" '' # Call withLocalConfig with the path to a *folder* containing a # `local.el` which provides local system configuration. withLocalConfig = confDir: self confDir f; + + # Build a derivation that uses the specified local Emacs (i.e. + # built outside of Nix) instead + withLocalEmacs = emacsBin: third_party.writeShellScriptBin "tazjins-emacs" '' + exec ${emacsBin} \ + --debug-init \ + --no-site-file \ + --no-init-file \ + --directory ${(tazjinsEmacs f).deps}/share/emacs/site-lisp \ + --directory ${./config} ${if l != null then "--directory ${l}" else ""} \ + --eval "(require 'init)" $@ + ''; }) null identity |