tvl-depot/utils/default.nix

21 lines
665 B
Nix
Raw Normal View History

{ 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;
}