16 lines
803 B
Bash
16 lines
803 B
Bash
root="$(cd "$(dirname "$0")/.." && pwd)"
|
|||
|
|
sdk=$(sed -n 's/.*"version": *"\([^"]*\)".*/\1/p' "$root/global.json" | head -n 1)
|
||
|
|
has_sdk() { [ -x "$1/dotnet" ] && [ -w "$1" ] && (cd "$root" && "$1/dotnet" --version >/dev/null 2>&1); }
|
||
|
|
dotnet_dir=""
|
||
|
|
for candidate in "$DOTNET_ROOT" "$HOME/.dotnet"; do
|
||
|
|
if [ -n "$candidate" ] && has_sdk "$candidate"; then dotnet_dir="$candidate"; break; fi
|
||
|
|
done
|
||
|
|
if [ -z "$dotnet_dir" ]; then
|
||
|
|
dotnet_dir="$HOME/.dotnet"
|
||
|
|
echo ".NET SDK $sdk not found: installing it into $dotnet_dir"
|
||
|
|
script="${TMPDIR:-/tmp}/dotnet-install.sh"
|
||
|
|
curl -fsSL https://dot.net/v1/dotnet-install.sh -o "$script"
|
||
|
|
bash "$script" --version "$sdk" --install-dir "$dotnet_dir"
|
||
|
|
fi
|
||
|
|
export DOTNET_ROOT="$dotnet_dir" PATH="$dotnet_dir:$PATH" DOTNET_CLI_TELEMETRY_OPTOUT=1 DOTNET_NOLOGO=1
|
||
|
|
cd "$root"
|