lol
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at 17.09-beta 73 lines 2.2 kB view raw
1{ stdenv, git, gitRepo, gnupg ? null, cacert, copyPathsToStore }: 2 3{ name, manifest, rev ? "HEAD", sha256, repoRepoURL ? "", repoRepoRev ? "", referenceDir ? "" 4, localManifests ? [], createMirror ? false, useArchive ? !createMirror 5}: 6 7assert repoRepoRev != "" -> repoRepoURL != ""; 8assert createMirror -> !useArchive; 9 10with stdenv.lib; 11 12let 13 repoInitFlags = [ 14 "--manifest-url=${manifest}" 15 "--manifest-branch=${rev}" 16 "--depth=1" 17 #TODO: fetching clone.bundle seems to fail spectacularly inside a sandbox. 18 "--no-clone-bundle" 19 (optionalString createMirror "--mirror") 20 (optionalString useArchive "--archive") 21 (optionalString (repoRepoURL != "") "--repo-url=${repoRepoURL}") 22 (optionalString (repoRepoRev != "") "--repo-branch=${repoRepoRev}") 23 (optionalString (referenceDir != "") "--reference=${referenceDir}") 24 ]; 25 26 local_manifests = copyPathsToStore localManifests; 27 28in 29 30with stdenv.lib; 31 32let 33 extraRepoInitFlags = [ 34 (optionalString (repoRepoURL != "") "--repo-url=${repoRepoURL}") 35 (optionalString (repoRepoRev != "") "--repo-branch=${repoRepoRev}") 36 (optionalString (referenceDir != "") "--reference=${referenceDir}") 37 ]; 38in 39 40stdenv.mkDerivation { 41 buildCommand = '' 42 mkdir .repo 43 ${optionalString (local_manifests != []) '' 44 mkdir ./.repo/local_manifests 45 for local_manifest in ${concatMapStringsSep " " toString local_manifests} 46 47 do 48 cp $local_manifest ./.repo/local_manifests/$(stripHash $local_manifest; echo $strippedName) 49 done 50 ''} 51 52 export HOME=.repo 53 repo init ${concatStringsSep " " repoInitFlags} 54 55 repo sync --jobs=$NIX_BUILD_CORES --current-branch 56 ${optionalString (!createMirror) "rm -rf $out/.repo"} 57 ''; 58 59 GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt"; 60 61 impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars ++ [ 62 "GIT_PROXY_COMMAND" "SOCKS_SERVER" 63 ]; 64 65 buildInputs = [git gitRepo cacert] ++ optional (gnupg != null) [gnupg] ; 66 outputHashAlgo = "sha256"; 67 outputHashMode = "recursive"; 68 outputHash = sha256; 69 70 preferLocalBuild = true; 71 enableParallelBuilding = true; 72 inherit name cacert manifest rev repoRepoURL repoRepoRev referenceDir; 73}