diff options
author | JP Ungaretti <git@jungaretti.com> | 2023-03-01 04:23:13 +0300 |
---|---|---|
committer | JP Ungaretti <git@jungaretti.com> | 2023-03-01 04:23:13 +0300 |
commit | 6b54ebde572ffc8cf6f3c5ddf6083d03f7a468b0 (patch) | |
tree | 3de2427dddf519a0ff7faf013fadefdb4217102b /src/dotnet | |
parent | b4b7d05ec86c1a0bdad0bf7350105e16bc3feef0 (diff) |
Add install_version helper to parse version
Diffstat (limited to 'src/dotnet')
-rw-r--r-- | src/dotnet/install.sh | 42 |
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!" |