#!/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 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"' \
    "exec '$install_dir/dotnet' \"\$@\"" \
    > "$bin_dir/dotnet"
chmod 0755 "$bin_dir/dotnet"
"$bin_dir/dotnet" --info
