nixpkgs/pkgs/tools/package-management/nix-index/default.nix
Silvan Mosberger e9ecd7f872 nix-index: Wrap with nix-env in PATH (#51165)
This fixes an impurity in nix-index: Previously it would take the nix-env
binary from the users PATH. I discovered this while trying to run nix-index in a
systemd service, which by default doesn't have nix-env in its path. The
errors it threw were not informative at all and it took me hours to
finally figure out the reason.
2018-12-04 08:54:37 +08:00

38 lines
1.1 KiB
Nix

{ stdenv, rustPlatform, fetchFromGitHub, pkgconfig, makeWrapper, openssl, curl
, nix, Security
}:
rustPlatform.buildRustPackage rec {
name = "nix-index-${version}";
version = "0.1.2";
src = fetchFromGitHub {
owner = "bennofs";
repo = "nix-index";
rev = "v${version}";
sha256 = "05fqfwz34n4ijw7ydw2n6bh4bv64rhks85cn720sy5r7bmhfmfa8";
};
cargoSha256 = "045qm7cyg3sdvf22i8b9cz8gsvggs5bn9xz8k1pvn5gxb7zj24cx";
nativeBuildInputs = [ pkgconfig makeWrapper ];
buildInputs = [ openssl curl ]
++ stdenv.lib.optional stdenv.isDarwin Security;
doCheck = !stdenv.isDarwin;
postInstall = ''
mkdir -p $out/etc/profile.d
cp ./command-not-found.sh $out/etc/profile.d/command-not-found.sh
substituteInPlace $out/etc/profile.d/command-not-found.sh \
--replace "@out@" "$out"
wrapProgram $out/bin/nix-index \
--prefix PATH : "${stdenv.lib.makeBinPath [ nix ]}"
'';
meta = with stdenv.lib; {
description = "A files database for nixpkgs";
homepage = https://github.com/bennofs/nix-index;
license = with licenses; [ bsd3 ];
maintainers = [ maintainers.bennofs ];
platforms = platforms.all;
};
}