From 05c132486d8cfae600bbfe8c9ac5d799b298afed Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Mon, 5 Sep 2016 12:01:26 -0400 Subject: [PATCH] Initial version of nixBufferBuilders.withPackages. This builds elisp to setup an emacs buffer with the packages given available. See shlevy/nix-buffer for more information. Currently only modifies $PATH. --- pkgs/build-support/emacs/buffer.nix | 20 ++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 22 insertions(+) create mode 100644 pkgs/build-support/emacs/buffer.nix diff --git a/pkgs/build-support/emacs/buffer.nix b/pkgs/build-support/emacs/buffer.nix new file mode 100644 index 00000000000..2f7f536d5e7 --- /dev/null +++ b/pkgs/build-support/emacs/buffer.nix @@ -0,0 +1,20 @@ +# Functions to build elisp files to locally configure emcas buffers. +# See https://github.com/shlevy/nix-buffer + +{ runCommand }: + +{ + withPackages = pkgs: runCommand "dir-locals.el" { inherit pkgs; } '' + echo "(make-local-variable 'process-environment)" >> $out + echo "(setenv \"PATH\" (concat" >> $out + for pkg in $pkgs; do + echo " \"$pkg/bin:$pkg/sbin\"" >> $out + done + echo " (getenv \"PATH\")))" >> $out + echo -n "(setq-local exec-path (append '(" >> $out + for pkg in $pkgs; do + echo -en "\n \"$pkg/bin\" \"$pkg/sbin\"" >> $out + done + echo -e ")\\n exec-path))" >> $out + ''; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c33dc33e6db..9023d33704c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -285,6 +285,8 @@ in inherit kernel rootModules allowMissing; }; + nixBufferBuilders = import ../build-support/emacs/buffer.nix { inherit (pkgs) runCommand; }; + pathsFromGraph = ../build-support/kernel/paths-from-graph.pl; srcOnly = args: callPackage ../build-support/src-only args;