41 lines
1.3 KiB
Bash
41 lines
1.3 KiB
Bash
#!/bin/sh
|
|
set -eu
|
|
|
|
: "${DEV_TOOLS_DIR:?DEV_TOOLS_DIR is required}"
|
|
: "${DOTNET_CHANNEL:?DOTNET_CHANNEL is required}"
|
|
|
|
install_dir="$DEV_TOOLS_DIR/dotnet"
|
|
bin_dir="$DEV_TOOLS_DIR/bin"
|
|
installer=$(mktemp)
|
|
trap 'rm -f "$installer"' EXIT
|
|
|
|
mkdir -p "$install_dir" "$bin_dir"
|
|
python3 - "$installer" <<'PYTHON'
|
|
import sys
|
|
import urllib.request
|
|
|
|
urllib.request.urlretrieve("https://dot.net/v1/dotnet-install.sh", sys.argv[1])
|
|
PYTHON
|
|
|
|
/bin/bash "$installer" \
|
|
--channel "$DOTNET_CHANNEL" \
|
|
--install-dir "$install_dir" \
|
|
--no-path
|
|
|
|
printf '%s\n' \
|
|
'#!/bin/sh' \
|
|
"export DOTNET_ROOT='$install_dir'" \
|
|
'export DOTNET_CLI_HOME="${DOTNET_CLI_HOME:-/tmp/agentci-dotnet}"' \
|
|
'export NUGET_PACKAGES="${NUGET_PACKAGES:-/tmp/agentci-nuget/packages}"' \
|
|
'export NUGET_HTTP_CACHE_PATH="${NUGET_HTTP_CACHE_PATH:-/tmp/agentci-nuget/http-cache}"' \
|
|
'export HOME="$DOTNET_CLI_HOME"' \
|
|
'export DOTNET_CLI_TELEMETRY_OPTOUT=1' \
|
|
'export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1' \
|
|
'export DOTNET_NOLOGO=1' \
|
|
'export DOTNET_CLI_WORKLOAD_UPDATE_NOTIFY_DISABLE=1' \
|
|
'mkdir -p "$DOTNET_CLI_HOME" "$NUGET_PACKAGES" "$NUGET_HTTP_CACHE_PATH"' \
|
|
"exec '$install_dir/dotnet' \"\$@\"" \
|
|
> "$bin_dir/dotnet"
|
|
chmod 0755 "$bin_dir/dotnet"
|
|
"$bin_dir/dotnet" --info
|