summary refs log tree commit diff
path: root/pkgs/build-support/fetchgit/default.nix
diff options
context:
space:
mode:
authorSandro Jäckel <sandro.jaeckel@sap.com>2021-09-15 16:17:05 +0200
committerSandro Jäckel <sandro.jaeckel@sap.com>2021-09-28 15:00:11 +0200
commit6f53c067482743fd68a5beceeb1205fab0ebe4c4 (patch)
treeac45a5c0620420380cc537f9a0a3d971f932e5be /pkgs/build-support/fetchgit/default.nix
parente3b5143614b6242b65f09b71850e1807126e2f33 (diff)
downloadnixpkgs-6f53c067482743fd68a5beceeb1205fab0ebe4c4.tar
nixpkgs-6f53c067482743fd68a5beceeb1205fab0ebe4c4.tar.gz
nixpkgs-6f53c067482743fd68a5beceeb1205fab0ebe4c4.tar.bz2
nixpkgs-6f53c067482743fd68a5beceeb1205fab0ebe4c4.tar.lz
nixpkgs-6f53c067482743fd68a5beceeb1205fab0ebe4c4.tar.xz
nixpkgs-6f53c067482743fd68a5beceeb1205fab0ebe4c4.tar.zst
nixpkgs-6f53c067482743fd68a5beceeb1205fab0ebe4c4.zip
fetchgit: add support for netrc file through impure NIX_GIT_SSL_CAINFO env
Diffstat (limited to 'pkgs/build-support/fetchgit/default.nix')
-rw-r--r--pkgs/build-support/fetchgit/default.nix16
1 files changed, 14 insertions, 2 deletions
diff --git a/pkgs/build-support/fetchgit/default.nix b/pkgs/build-support/fetchgit/default.nix
index 3222866dc78..c139030ea97 100644
--- a/pkgs/build-support/fetchgit/default.nix
+++ b/pkgs/build-support/fetchgit/default.nix
@@ -21,6 +21,11 @@ in
   postFetch ? ""
 , preferLocalBuild ? true
 , fetchLFS ? false
+, # Shell code to build a netrc file for BASIC auth
+  netrcPhase ? null
+, # Impure env vars (https://nixos.org/nix/manual/#sec-advanced-attributes)
+  # needed for netrcPhase
+  netrcImpureEnvVars ? []
 }:
 
 /* NOTE:
@@ -64,10 +69,17 @@ stdenvNoCC.mkDerivation {
 
   inherit url rev leaveDotGit fetchLFS fetchSubmodules deepClone branchName postFetch;
 
+  postHook = if netrcPhase == null then null else ''
+    ${netrcPhase}
+    # required that git uses the netrc file
+    mv {,.}netrc
+    export HOME=$PWD
+  '';
+
   GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
 
-  impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [
-    "GIT_PROXY_COMMAND" "SOCKS_SERVER"
+  impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ netrcImpureEnvVars ++ [
+    "GIT_PROXY_COMMAND" "NIX_GIT_SSL_CAINFO" "SOCKS_SERVER"
   ];
 
   inherit preferLocalBuild;