From b71b7ee62234dbf1863e9595bfeed961e951e491 Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Fri, 19 May 2017 15:38:01 -0400 Subject: fetchFromGitHub: Allow private repos, hosted githubs --- pkgs/build-support/fetchurl/default.nix | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'pkgs/build-support/fetchurl/default.nix') diff --git a/pkgs/build-support/fetchurl/default.nix b/pkgs/build-support/fetchurl/default.nix index fea06e22ab46..5811950bf053 100644 --- a/pkgs/build-support/fetchurl/default.nix +++ b/pkgs/build-support/fetchurl/default.nix @@ -59,6 +59,13 @@ in , recursiveHash ? false +, # Shell code to build a netrc file for BASIC auth + netrcPhase ? null + +, # Impure env vars (http://nixos.org/nix/manual/#sec-advanced-attributes) + # needed for netrcPhase + netrcImpureEnvVars ? [] + , # Shell code executed after the file has been fetched # successfully. This can do things like check or transform the file. postFetch ? "" @@ -118,11 +125,18 @@ else stdenv.mkDerivation { outputHashMode = if (recursiveHash || executable) then "recursive" else "flat"; - inherit curlOpts showURLs mirrorsFile impureEnvVars postFetch downloadToTemp executable; + inherit curlOpts showURLs mirrorsFile postFetch downloadToTemp executable; + + impureEnvVars = impureEnvVars ++ netrcImpureEnvVars; # Doing the download on a remote machine just duplicates network # traffic, so don't do that. preferLocalBuild = true; + postHook = if netrcPhase == null then null else '' + ${netrcPhase} + curlOpts="$curlOpts --netrc-file $PWD/netrc" + ''; + inherit meta; } -- cgit 1.4.1