about summary refs log tree commit diff
path: root/nix/binify/default.nix
blob: a9900caf43d5a284d82f2b91fac87ebe0cef8c64 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{ pkgs, lib, ... }:

# Create a store path where the executable `exe`
# is linked to $out/bin/${name}.
# This is useful for e.g. including it as a “package”
# in `buildInputs` of a shell.nix.
#
# For example, if I have the exeutable /nix/store/…-hello,
# I can make it into /nix/store/…-binify-hello/bin/hello
# with `binify { exe = …; name = "hello" }`.
{ exe, name }:

pkgs.runCommandLocal "${name}-bin" { } ''
  mkdir -p $out/bin
  ln -sT ${lib.escapeShellArg exe} $out/bin/${lib.escapeShellArg name}
''