nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at devShellTools-shell 91 lines 3.0 kB view raw
1dotnetBuildHook() { 2 echo "Executing dotnetBuildHook" 3 4 runHook preBuild 5 6 local -r dotnetBuildType="${dotnetBuildType-Release}" 7 8 if [[ -n $__structuredAttrs ]]; then 9 local dotnetProjectFilesArray=( "${dotnetProjectFiles[@]}" ) 10 local dotnetTestProjectFilesArray=( "${dotnetTestProjectFiles[@]}" ) 11 local dotnetFlagsArray=( "${dotnetFlags[@]}" ) 12 local dotnetBuildFlagsArray=( "${dotnetBuildFlags[@]}" ) 13 local dotnetRuntimeIdsArray=( "${dotnetRuntimeIds[@]}" ) 14 else 15 local dotnetProjectFilesArray=($dotnetProjectFiles) 16 local dotnetTestProjectFilesArray=($dotnetTestProjectFiles) 17 local dotnetFlagsArray=($dotnetFlags) 18 local dotnetBuildFlagsArray=($dotnetBuildFlags) 19 local dotnetRuntimeIdsArray=($dotnetRuntimeIds) 20 fi 21 22 if [[ -n "${enableParallelBuilding-}" ]]; then 23 local -r maxCpuFlag="$NIX_BUILD_CORES" 24 local -r parallelBuildFlag="true" 25 else 26 local -r maxCpuFlag="1" 27 local -r parallelBuildFlag="false" 28 fi 29 30 if [[ -v dotnetSelfContainedBuild ]]; then 31 if [[ -n $dotnetSelfContainedBuild ]]; then 32 dotnetBuildFlagsArray+=("-p:SelfContained=true") 33 else 34 dotnetBuildFlagsArray+=("-p:SelfContained=false") 35 fi 36 fi 37 38 if [[ -n ${dotnetUseAppHost-} ]]; then 39 dotnetBuildFlagsArray+=("-p:UseAppHost=true") 40 fi 41 42 local versionFlagsArray=() 43 if [[ -n ${version-} ]]; then 44 versionFlagsArray+=("-p:InformationalVersion=$version") 45 fi 46 47 if [[ -n ${versionForDotnet-} ]]; then 48 versionFlagsArray+=("-p:Version=$versionForDotnet") 49 fi 50 51 dotnetBuild() { 52 local -r projectFile="${1-}" 53 54 for runtimeId in "${dotnetRuntimeIdsArray[@]}"; do 55 local runtimeIdFlagsArray=() 56 if [[ $projectFile == *.csproj || -n ${dotnetSelfContainedBuild-} ]]; then 57 runtimeIdFlagsArray+=("--runtime" "$runtimeId") 58 fi 59 60 dotnet build ${1+"$projectFile"} \ 61 -maxcpucount:"$maxCpuFlag" \ 62 -p:BuildInParallel="$parallelBuildFlag" \ 63 -p:ContinuousIntegrationBuild=true \ 64 -p:Deterministic=true \ 65 -p:OverwriteReadOnlyFiles=true \ 66 --configuration "$dotnetBuildType" \ 67 --no-restore \ 68 "${versionFlagsArray[@]}" \ 69 "${runtimeIdFlagsArray[@]}" \ 70 "${dotnetBuildFlagsArray[@]}" \ 71 "${dotnetFlagsArray[@]}" 72 done 73 } 74 75 if (( ${#dotnetProjectFilesArray[@]} == 0 )); then 76 dotnetBuild 77 fi 78 79 local projectFile 80 for projectFile in "${dotnetProjectFilesArray[@]}" "${dotnetTestProjectFilesArray[@]}"; do 81 dotnetBuild "$projectFile" 82 done 83 84 runHook postBuild 85 86 echo "Finished dotnetBuildHook" 87} 88 89if [[ -z ${dontDotnetBuild-} && -z ${buildPhase-} ]]; then 90 buildPhase=dotnetBuildHook 91fi