nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at devShellTools-shell 78 lines 2.8 kB view raw
1dotnetConfigureHook() { 2 echo "Executing dotnetConfigureHook" 3 4 runHook preConfigure 5 6 local -r dynamicLinker=@dynamicLinker@ 7 local -r libPath=@libPath@ 8 9 if [[ -n $__structuredAttrs ]]; then 10 local dotnetProjectFilesArray=( "${dotnetProjectFiles[@]}" ) 11 local dotnetTestProjectFilesArray=( "${dotnetTestProjectFiles[@]}" ) 12 local dotnetFlagsArray=( "${dotnetFlags[@]}" ) 13 local dotnetRestoreFlagsArray=( "${dotnetRestoreFlags[@]}" ) 14 local dotnetRuntimeIdsArray=( "${dotnetRuntimeIds[@]}" ) 15 else 16 local dotnetProjectFilesArray=($dotnetProjectFiles) 17 local dotnetTestProjectFilesArray=($dotnetTestProjectFiles) 18 local dotnetFlagsArray=($dotnetFlags) 19 local dotnetRestoreFlagsArray=($dotnetRestoreFlags) 20 local dotnetRuntimeIdsArray=($dotnetRuntimeIds) 21 fi 22 23 if [[ -z ${enableParallelBuilding-} ]]; then 24 local -r parallelFlag="--disable-parallel" 25 fi 26 27 if [[ -v dotnetSelfContainedBuild ]]; then 28 if [[ -n $dotnetSelfContainedBuild ]]; then 29 dotnetRestoreFlagsArray+=("-p:SelfContained=true") 30 else 31 dotnetRestoreFlagsArray+=("-p:SelfContained=false") 32 fi 33 fi 34 35 dotnetRestore() { 36 local -r projectFile="${1-}" 37 for runtimeId in "${dotnetRuntimeIdsArray[@]}"; do 38 dotnet restore ${1+"$projectFile"} \ 39 -p:ContinuousIntegrationBuild=true \ 40 -p:Deterministic=true \ 41 -p:NuGetAudit=false \ 42 --runtime "$runtimeId" \ 43 ${parallelFlag-} \ 44 "${dotnetRestoreFlagsArray[@]}" \ 45 "${dotnetFlagsArray[@]}" 46 done 47 } 48 49 if [[ -f .config/dotnet-tools.json || -f dotnet-tools.json ]]; then 50 dotnet tool restore 51 fi 52 53 # dotnetGlobalTool is set in buildDotnetGlobalTool to patch dependencies but 54 # avoid other project-specific logic. This is a hack, but the old behavior 55 # is worse as it relied on a bug: setting projectFile to an empty string 56 # made the hooks actually skip all project-specific logic. It’s hard to keep 57 # backwards compatibility with this odd behavior now since we are using 58 # arrays, so instead we just pass a variable to indicate that we don’t have 59 # projects. 60 if [[ -z ${dotnetGlobalTool-} ]]; then 61 if (( ${#dotnetProjectFilesArray[@]} == 0 )); then 62 dotnetRestore 63 fi 64 65 local projectFile 66 for projectFile in "${dotnetProjectFilesArray[@]}" "${dotnetTestProjectFilesArray[@]}"; do 67 dotnetRestore "$projectFile" 68 done 69 fi 70 71 runHook postConfigure 72 73 echo "Finished dotnetConfigureHook" 74} 75 76if [[ -z "${dontDotnetConfigure-}" && -z "${configurePhase-}" ]]; then 77 configurePhase=dotnetConfigureHook 78fi