aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dotnet/install.sh42
1 files changed, 35 insertions, 7 deletions
diff --git a/src/dotnet/install.sh b/src/dotnet/install.sh
index bd44be2..0edd5b8 100644
--- a/src/dotnet/install.sh
+++ b/src/dotnet/install.sh
@@ -10,6 +10,9 @@
DOTNET_VERSION="${VERSION:-'latest'}"
DOTNET_ADDITIONAL_VERSIONS="${ADDITIONALVERSIONS:-''}"
DOTNET_RUNTIME_ONLY="${RUNTIMEONLY:-'false'}"
+
+DOTNET_INSTALL_SCRIPT_URL='https://dot.net/v1/dotnet-install.sh'
+DOTNET_INSTALL_SCRIPT='/tmp/dotnet-install.sh'
DOTNET_INSTALL_DIR='/usr/local/dotnet/current'
set -e
@@ -29,6 +32,33 @@ check_packages() {
fi
}
+install_version() {
+ local version="$1"
+ local channel="LTS"
+ local runtimeArg=""
+
+ # If version is just a major value, assume it is a channel
+ if [[ "$version" =~ ^[0-9]+$ ]]; then
+ channel="$version.0"
+ version='latest'
+ fi
+
+ if ! [[ "$version" = 'latest' || "$version" =~ ^[0-9]+.[0-9]+.[0-9]+$ ]]; then
+ echo "version must be 'latest' or use the form 'N.M.O'"
+ return 1
+ fi
+
+ if [ "$DOTNET_RUNTIME_ONLY" = 'true' ]; then
+ runtimeArg = '--runtime dotnet'
+ fi
+
+ "$DOTNET_INSTALL_SCRIPT" \
+ --install-dir "$DOTNET_INSTALL_DIR" \
+ --version "$version" \
+ --channel "$channel" \
+ $runtimeArg
+}
+
if [ "$(id -u)" -ne 0 ]; then
echo -e 'Script must be run as root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.'
exit 1
@@ -37,16 +67,14 @@ fi
# icu-devtools includes dependencies for .NET
check_packages wget ca-certificates icu-devtools
-installer_script="/tmp/dotnet-install.sh"
-wget -O "$installer_script" https://dot.net/v1/dotnet-install.sh
-
-chmod +x "$installer_script"
+wget -O "$DOTNET_INSTALL_SCRIPT" "$DOTNET_INSTALL_SCRIPT_URL"
+chmod +x "$DOTNET_INSTALL_SCRIPT"
-# TODO: Install the version specified by DOTNET_VERSION option
-"$installer_script" --install-dir "$DOTNET_INSTALL_DIR"
+# Install primary version
+install_version "$DOTNET_VERSION"
# TODO: Install additional versions
-rm "$installer_script"
+rm "$DOTNET_INSTALL_SCRIPT"
echo "Done!"