summary refs log tree commit diff
path: root/pkgs/build-support/fetchurl
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2017-05-19 15:38:01 -0400
committerShea Levy <shea@shealevy.com>2017-05-19 15:38:01 -0400
commitb71b7ee62234dbf1863e9595bfeed961e951e491 (patch)
treeef6b75b62332c6ce01e3002405ae4f0e183ece60 /pkgs/build-support/fetchurl
parent06767b81e03b351c0a00a01eb6d75f58950ddcff (diff)
downloadnixpkgs-b71b7ee62234dbf1863e9595bfeed961e951e491.tar
nixpkgs-b71b7ee62234dbf1863e9595bfeed961e951e491.tar.gz
nixpkgs-b71b7ee62234dbf1863e9595bfeed961e951e491.tar.bz2
nixpkgs-b71b7ee62234dbf1863e9595bfeed961e951e491.tar.lz
nixpkgs-b71b7ee62234dbf1863e9595bfeed961e951e491.tar.xz
nixpkgs-b71b7ee62234dbf1863e9595bfeed961e951e491.tar.zst
nixpkgs-b71b7ee62234dbf1863e9595bfeed961e951e491.zip
fetchFromGitHub: Allow private repos, hosted githubs
Diffstat (limited to 'pkgs/build-support/fetchurl')
-rw-r--r--pkgs/build-support/fetchurl/default.nix16
1 files changed, 15 insertions, 1 deletions
diff --git a/pkgs/build-support/fetchurl/default.nix b/pkgs/build-support/fetchurl/default.nix
index fea06e22ab4..5811950bf05 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;
 }