From 2aab84453d9517a8a954905b3f2ce372dfd01266 Mon Sep 17 00:00:00 2001 From: Sebastien Bourdeauducq Date: Sat, 9 Feb 2019 14:44:32 +0800 Subject: [PATCH] nix: commit missing file --- nix/fetchcargo.nix | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 nix/fetchcargo.nix diff --git a/nix/fetchcargo.nix b/nix/fetchcargo.nix new file mode 100644 index 000000000..6195a7238 --- /dev/null +++ b/nix/fetchcargo.nix @@ -0,0 +1,35 @@ +{ stdenv, cacert, git, cargo, cargo-vendor }: +{ name, src, sha256 }: +stdenv.mkDerivation { + name = "${name}-vendor"; + nativeBuildInputs = [ cacert git cargo cargo-vendor ]; + inherit src; + + phases = "unpackPhase patchPhase installPhase"; + + installPhase = '' + if [[ ! -f Cargo.lock ]]; then + echo + echo "ERROR: The Cargo.lock file doesn't exist" + echo + echo "Cargo.lock is needed to make sure that cargoSha256 doesn't change" + echo "when the registry is updated." + echo + + exit 1 + fi + + export CARGO_HOME=$(mktemp -d cargo-home.XXX) + + cargo vendor + + cp -ar vendor $out + ''; + + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = sha256; + + impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars; + preferLocalBuild = true; +}