summary refs log tree commit diff
path: root/pkgs/build-support
diff options
context:
space:
mode:
authorMichael Weiss <dev.primeos@gmail.com>2017-09-16 17:21:26 +0200
committerMichael Weiss <dev.primeos@gmail.com>2017-09-16 17:25:25 +0200
commit50ce8abccff884fd61ddbc1aff68ee36c89bc77c (patch)
treeff55508b44b41210176e869abae5ef0a386e95be /pkgs/build-support
parent701db44ab9fa15e2e132a7cf0f0eff9b5fb75a5e (diff)
downloadnixpkgs-50ce8abccff884fd61ddbc1aff68ee36c89bc77c.tar
nixpkgs-50ce8abccff884fd61ddbc1aff68ee36c89bc77c.tar.gz
nixpkgs-50ce8abccff884fd61ddbc1aff68ee36c89bc77c.tar.bz2
nixpkgs-50ce8abccff884fd61ddbc1aff68ee36c89bc77c.tar.lz
nixpkgs-50ce8abccff884fd61ddbc1aff68ee36c89bc77c.tar.xz
nixpkgs-50ce8abccff884fd61ddbc1aff68ee36c89bc77c.tar.zst
nixpkgs-50ce8abccff884fd61ddbc1aff68ee36c89bc77c.zip
fetchRepoProject: Refactor the code
Should hopefully make it a bit more readable and less redundant.
Diffstat (limited to 'pkgs/build-support')
-rw-r--r--pkgs/build-support/fetchrepoproject/default.nix65
1 files changed, 29 insertions, 36 deletions
diff --git a/pkgs/build-support/fetchrepoproject/default.nix b/pkgs/build-support/fetchrepoproject/default.nix
index 8c55db5372d..81f7b3d3f56 100644
--- a/pkgs/build-support/fetchrepoproject/default.nix
+++ b/pkgs/build-support/fetchrepoproject/default.nix
@@ -1,6 +1,7 @@
 { stdenv, git, gitRepo, gnupg ? null, cacert, copyPathsToStore }:
 
-{ name, manifest, rev ? "HEAD", sha256, repoRepoURL ? "", repoRepoRev ? "", referenceDir ? ""
+{ name, manifest, rev ? "HEAD", sha256
+, repoRepoURL ? "", repoRepoRev ? "", referenceDir ? ""
 , localManifests ? [], createMirror ? false, useArchive ? !createMirror
 }:
 
@@ -10,6 +11,12 @@ assert createMirror -> !useArchive;
 with stdenv.lib;
 
 let
+  extraRepoInitFlags = [
+    (optionalString (repoRepoURL != "") "--repo-url=${repoRepoURL}")
+    (optionalString (repoRepoRev != "") "--repo-branch=${repoRepoRev}")
+    (optionalString (referenceDir != "") "--reference=${referenceDir}")
+  ];
+
   repoInitFlags = [
     "--manifest-url=${manifest}"
     "--manifest-branch=${rev}"
@@ -18,56 +25,42 @@ let
     "--no-clone-bundle"
     (optionalString createMirror "--mirror")
     (optionalString useArchive "--archive")
-    (optionalString (repoRepoURL != "") "--repo-url=${repoRepoURL}")
-    (optionalString (repoRepoRev != "") "--repo-branch=${repoRepoRev}")
-    (optionalString (referenceDir != "") "--reference=${referenceDir}")
-  ];
+  ] ++ extraRepoInitFlags;
 
   local_manifests = copyPathsToStore localManifests;
 
-in
+in stdenv.mkDerivation {
+  inherit name;
 
-with stdenv.lib;
+  inherit cacert manifest rev repoRepoURL repoRepoRev referenceDir; # TODO
 
-let
-  extraRepoInitFlags = [
-    (optionalString (repoRepoURL != "") "--repo-url=${repoRepoURL}")
-    (optionalString (repoRepoRev != "") "--repo-branch=${repoRepoRev}")
-    (optionalString (referenceDir != "") "--reference=${referenceDir}")
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = sha256;
+
+  preferLocalBuild = true;
+  enableParallelBuilding = true;
+
+  impureEnvVars = fetchers.proxyImpureEnvVars ++ [
+    "GIT_PROXY_COMMAND" "SOCKS_SERVER"
   ];
-in
 
-stdenv.mkDerivation {
+  buildInputs = [ git gitRepo cacert ] ++ optional (gnupg != null) [ gnupg ];
+
+  GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
+
   buildCommand = ''
     mkdir .repo
     ${optionalString (local_manifests != []) ''
-    mkdir ./.repo/local_manifests
-    for local_manifest in ${concatMapStringsSep " " toString local_manifests}
-
-    do
-      cp $local_manifest ./.repo/local_manifests/$(stripHash $local_manifest; echo $strippedName)
-    done
+      mkdir .repo/local_manifests
+      for local_manifest in ${concatMapStringsSep " " toString local_manifests}; do
+        cp $local_manifest .repo/local_manifests/$(stripHash $local_manifest; echo $strippedName)
+      done
     ''}
 
     export HOME=.repo
     repo init ${concatStringsSep " " repoInitFlags}
-
     repo sync --jobs=$NIX_BUILD_CORES --current-branch
     ${optionalString (!createMirror) "rm -rf $out/.repo"}
   '';
-
-  GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
-
-  impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars ++ [
-    "GIT_PROXY_COMMAND" "SOCKS_SERVER"
-  ];
-
-  buildInputs = [git gitRepo cacert] ++ optional (gnupg != null) [gnupg] ;
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = sha256;
-
-  preferLocalBuild = true;
-  enableParallelBuilding = true;
-  inherit name cacert manifest rev repoRepoURL repoRepoRev referenceDir;
 }