| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- #!/usr/bin/env bash
- source="${BASH_SOURCE[0]}"
- # resolve $source until the file is no longer a symlink
- while [[ -h "$source" ]]; do
- scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
- source="$(readlink "$source")"
- # if $source was a relative symlink, we need to resolve it relative to the path where the
- # symlink file was located
- [[ $source != /* ]] && source="$scriptroot/$source"
- done
- scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
- . "$scriptroot/tools.sh"
- version='Latest'
- architecture=''
- runtime='dotnet'
- runtimeSourceFeed=''
- runtimeSourceFeedKey=''
- while [[ $# > 0 ]]; do
- opt="$(echo "$1" | awk '{print tolower($0)}')"
- case "$opt" in
- -version|-v)
- shift
- version="$1"
- ;;
- -architecture|-a)
- shift
- architecture="$1"
- ;;
- -runtime|-r)
- shift
- runtime="$1"
- ;;
- -runtimesourcefeed)
- shift
- runtimeSourceFeed="$1"
- ;;
- -runtimesourcefeedkey)
- shift
- runtimeSourceFeedKey="$1"
- ;;
- *)
- Write-PipelineTelemetryError -Category 'Build' -Message "Invalid argument: $1"
- exit 1
- ;;
- esac
- shift
- done
- # Use uname to determine what the CPU is.
- cpuname=$(uname -p)
- # Some Linux platforms report unknown for platform, but the arch for machine.
- if [[ "$cpuname" == "unknown" ]]; then
- cpuname=$(uname -m)
- fi
- case $cpuname in
- aarch64)
- buildarch=arm64
- ;;
- amd64|x86_64)
- buildarch=x64
- ;;
- armv7l)
- buildarch=arm
- ;;
- i686)
- buildarch=x86
- ;;
- *)
- echo "Unknown CPU $cpuname detected, treating it as x64"
- buildarch=x64
- ;;
- esac
- dotnetRoot="$repo_root/.dotnet"
- if [[ $architecture != "" ]] && [[ $architecture != $buildarch ]]; then
- dotnetRoot="$dotnetRoot/$architecture"
- fi
- InstallDotNet $dotnetRoot $version "$architecture" $runtime true $runtimeSourceFeed $runtimeSourceFeedKey || {
- local exit_code=$?
- Write-PipelineTelemetryError -Category 'InitializeToolset' -Message "dotnet-install.sh failed (exit code '$exit_code')." >&2
- ExitWithExitCode $exit_code
- }
- ExitWithExitCode 0
|