diff options
-rw-r--r-- | nix/binify/default.nix | 16 | ||||
-rw-r--r-- | third_party/default.nix | 1 |
2 files changed, 17 insertions, 0 deletions
diff --git a/nix/binify/default.nix b/nix/binify/default.nix new file mode 100644 index 000000000000..17fd980ad994 --- /dev/null +++ b/nix/binify/default.nix @@ -0,0 +1,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 "binify-${name}" {} '' + mkdir -p $out/bin + ln -sT ${lib.escapeShellArg exe} $out/bin/${lib.escapeShellArg name} +'' diff --git a/third_party/default.nix b/third_party/default.nix index 934eee15711a..7d1e83573a6f 100644 --- a/third_party/default.nix +++ b/third_party/default.nix @@ -115,6 +115,7 @@ let rsync runCommand runCommandNoCC + runCommandLocal rustPlatform rustc sbcl |