6b224a9e31
Lorri does not cleanly integrate with my corporate device, which cannot run NixOS. To expose dependencies to Emacs buffers, I will use nix-buffer.el, which reads its values from dir-locals.nix. To easily expose dependencies from my existing shell.nix files into dir-locals.nix, I wrote a Nix utility function.
20 lines
665 B
Nix
20 lines
665 B
Nix
{ pkgs, ... }:
|
|
|
|
# Using this as a library to define some common utility functions that I often
|
|
# reach for.
|
|
{
|
|
# A unary function that returns its argument.
|
|
identity = x: x;
|
|
|
|
# Create a derivation that creates an executable shell script named `as` that
|
|
# calls the program located at `path`, forwarding all of the arguments.
|
|
wrapNonNixProgram = { path, as }: pkgs.writeShellScriptBin as ''
|
|
exec ${path} "$@"
|
|
'';
|
|
|
|
# Expose the buildInputs from a Nix shell to an Emacs buffer. Intended to be
|
|
# called from dir-locals.nix files.
|
|
nixBufferFromShell = path: let
|
|
shell = import path;
|
|
in pkgs.nixBufferBuilders.withPackages shell.buildInputs;
|
|
}
|