nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
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