diff options
author | wtgodbe <wigodbe@microsoft.com> | 2017-05-02 16:33:41 -0700 |
---|---|---|
committer | wtgodbe <wigodbe@microsoft.com> | 2017-05-16 16:37:21 -0700 |
commit | 798387ee90d7536d5a620af8482100ba76f6061a (patch) | |
tree | c11eea885b05e7424f103cd671d227ff173a3083 /init-tools.sh | |
parent | 36e988ee6593351f1e962118a99154df5eae0254 (diff) | |
download | coreclr-798387ee90d7536d5a620af8482100ba76f6061a.tar.gz coreclr-798387ee90d7536d5a620af8482100ba76f6061a.tar.bz2 coreclr-798387ee90d7536d5a620af8482100ba76f6061a.zip |
Update Coreclr to 2.0.0 buildtools
Diffstat (limited to 'init-tools.sh')
-rwxr-xr-x | init-tools.sh | 101 |
1 files changed, 27 insertions, 74 deletions
diff --git a/init-tools.sh b/init-tools.sh index f965583dae..b676ba1846 100755 --- a/init-tools.sh +++ b/init-tools.sh @@ -7,63 +7,17 @@ __TOOLRUNTIME_DIR=$__scriptpath/Tools __DOTNET_PATH=$__TOOLRUNTIME_DIR/dotnetcli __DOTNET_CMD=$__DOTNET_PATH/dotnet if [ -z "$__BUILDTOOLS_SOURCE" ]; then __BUILDTOOLS_SOURCE=https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json; fi +export __BUILDTOOLS_USE_CSPROJ=true __BUILD_TOOLS_PACKAGE_VERSION=$(cat $__scriptpath/BuildToolsVersion.txt) __DOTNET_TOOLS_VERSION=$(cat $__scriptpath/DotnetCLIVersion.txt) -__BUILD_TOOLS_PATH=$__PACKAGES_DIR/Microsoft.DotNet.BuildTools/$__BUILD_TOOLS_PACKAGE_VERSION/lib -__PROJECT_JSON_PATH=$__TOOLRUNTIME_DIR/$__BUILD_TOOLS_PACKAGE_VERSION -__PROJECT_JSON_FILE=$__PROJECT_JSON_PATH/project.json -__PROJECT_JSON_CONTENTS="{ \"dependencies\": { \"Microsoft.DotNet.BuildTools\": \"$__BUILD_TOOLS_PACKAGE_VERSION\" }, \"frameworks\": { \"netcoreapp1.0\": { } } }" -__INIT_TOOLS_DONE_MARKER=$__PROJECT_JSON_PATH/done - -# Extended version of platform detection logic from dotnet/cli/scripts/obtain/dotnet-install.sh 16692fc -get_current_linux_name() { - # Detect Distro - if [ "$(cat /etc/os-release | grep -cim1 ubuntu)" -eq 1 ]; then - if [ "$(cat /etc/os-release | grep -cim1 16.04)" -eq 1 ]; then - echo "ubuntu.16.04" - return 0 - fi - if [ "$(cat /etc/os-release | grep -cim1 16.10)" -eq 1 ]; then - echo "ubuntu.16.10" - return 0 - fi - - echo "ubuntu" - return 0 - elif [ "$(cat /etc/os-release | grep -cim1 centos)" -eq 1 ]; then - echo "centos" - return 0 - elif [ "$(cat /etc/os-release | grep -cim1 rhel)" -eq 1 ]; then - echo "rhel" - return 0 - elif [ "$(cat /etc/os-release | grep -cim1 debian)" -eq 1 ]; then - echo "debian" - return 0 - elif [ "$(cat /etc/os-release | grep -cim1 alpine)" -eq 1 ]; then - echo "alpine" - return 0 - elif [ "$(cat /etc/os-release | grep -cim1 fedora)" -eq 1 ]; then - if [ "$(cat /etc/os-release | grep -cim1 24)" -eq 1 ]; then - echo "fedora.24" - return 0 - fi - if [ "$(cat /etc/os-release | grep -cim1 25)" -eq 1 ]; then - echo "fedora.25" - return 0 - fi - elif [ "$(cat /etc/os-release | grep -cim1 opensuse)" -eq 1 ]; then - if [ "$(cat /etc/os-release | grep -cim1 42.1)" -eq 1 ]; then - echo "opensuse.42.1" - return 0 - fi - fi - - # Cannot determine Linux distribution, assuming Ubuntu 14.04. - echo "ubuntu" - return 0 -} +__BUILD_TOOLS_PATH=$__PACKAGES_DIR/microsoft.dotnet.buildtools/$__BUILD_TOOLS_PACKAGE_VERSION/lib +__INIT_TOOLS_RESTORE_PROJECT=$__scriptpath/init-tools.msbuild +__INIT_TOOLS_DONE_MARKER=$__TOOLRUNTIME_DIR/$__BUILD_TOOLS_PACKAGE_VERSION/done if [ -z "$__DOTNET_PKG" ]; then + if [ "$(uname -m | grep "i[3456]86")" = "i686" ]; then + echo "Warning: build not supported on 32 bit Unix" + fi OSName=$(uname -s) case $OSName in Darwin) @@ -73,14 +27,14 @@ OSName=$(uname -s) ;; Linux) - __DOTNET_PKG="dotnet-dev-$(get_current_linux_name)-x64" + __DOTNET_PKG=dotnet-dev-linux-x64 OS=Linux ;; *) - echo "Unsupported OS '$OSName' detected. Downloading ubuntu-x64 tools." + echo "Unsupported OS '$OSName' detected. Downloading linux-x64 tools." OS=Linux - __DOTNET_PKG=dotnet-dev-ubuntu-x64 + __DOTNET_PKG=dotnet-dev-linux-x64 ;; esac fi @@ -103,13 +57,14 @@ if [ ! -e $__INIT_TOOLS_DONE_MARKER ]; then cp -r $DOTNET_TOOL_DIR/* $__DOTNET_PATH else echo "Installing dotnet cli..." - __DOTNET_LOCATION="https://dotnetcli.blob.core.windows.net/dotnet/preview/Binaries/${__DOTNET_TOOLS_VERSION}/${__DOTNET_PKG}.${__DOTNET_TOOLS_VERSION}.tar.gz" + __DOTNET_LOCATION="https://dotnetcli.blob.core.windows.net/dotnet/Sdk/${__DOTNET_TOOLS_VERSION}/${__DOTNET_PKG}.${__DOTNET_TOOLS_VERSION}.tar.gz" # curl has HTTPS CA trust-issues less often than wget, so lets try that first. echo "Installing '${__DOTNET_LOCATION}' to '$__DOTNET_PATH/dotnet.tar'" >> $__init_tools_log - if command -v curl > /dev/null; then - curl --retry 10 -sSL --create-dirs -o $__DOTNET_PATH/dotnet.tar ${__DOTNET_LOCATION} - else + which curl > /dev/null 2> /dev/null + if [ $? -ne 0 ]; then wget -q -O $__DOTNET_PATH/dotnet.tar ${__DOTNET_LOCATION} + else + curl --retry 10 -sSL --create-dirs -o $__DOTNET_PATH/dotnet.tar ${__DOTNET_LOCATION} fi cd $__DOTNET_PATH tar -xf $__DOTNET_PATH/dotnet.tar @@ -128,18 +83,18 @@ if [ ! -e $__INIT_TOOLS_DONE_MARKER ]; then echo "Copying $BUILD_TOOLS_TOOL_DIR to $__TOOLRUNTIME_DIR" >> $__init_tools_log cp -r $BUILD_TOOLS_TOOL_DIR/* $__TOOLRUNTIME_DIR else - if [ ! -d "$__PROJECT_JSON_PATH" ]; then mkdir "$__PROJECT_JSON_PATH"; fi - echo $__PROJECT_JSON_CONTENTS > "$__PROJECT_JSON_FILE" - if [ ! -e $__BUILD_TOOLS_PATH ]; then echo "Restoring BuildTools version $__BUILD_TOOLS_PACKAGE_VERSION..." - echo "Running: $__DOTNET_CMD restore \"$__PROJECT_JSON_FILE\" --no-cache --packages $__PACKAGES_DIR --source $__BUILDTOOLS_SOURCE" >> $__init_tools_log - $__DOTNET_CMD restore "$__PROJECT_JSON_FILE" --no-cache --packages $__PACKAGES_DIR --source $__BUILDTOOLS_SOURCE >> $__init_tools_log + echo "Running: $__DOTNET_CMD restore \"$__INIT_TOOLS_RESTORE_PROJECT\" --no-cache --packages $__PACKAGES_DIR --source $__BUILDTOOLS_SOURCE /p:BuildToolsPackageVersion=$__BUILD_TOOLS_PACKAGE_VERSION" >> $__init_tools_log + $__DOTNET_CMD restore "$__INIT_TOOLS_RESTORE_PROJECT" --no-cache --packages $__PACKAGES_DIR --source $__BUILDTOOLS_SOURCE /p:BuildToolsPackageVersion=$__BUILD_TOOLS_PACKAGE_VERSION >> $__init_tools_log if [ ! -e "$__BUILD_TOOLS_PATH/init-tools.sh" ]; then echo "ERROR: Could not restore build tools correctly. See '$__init_tools_log' for more details."1>&2; fi fi echo "Initializing BuildTools..." echo "Running: $__BUILD_TOOLS_PATH/init-tools.sh $__scriptpath $__DOTNET_CMD $__TOOLRUNTIME_DIR" >> $__init_tools_log + + # Executables restored with .NET Core 2.0 do not have executable permission flags. https://github.com/NuGet/Home/issues/4424 + chmod +x $__BUILD_TOOLS_PATH/init-tools.sh $__BUILD_TOOLS_PATH/init-tools.sh $__scriptpath $__DOTNET_CMD $__TOOLRUNTIME_DIR >> $__init_tools_log if [ "$?" != "0" ]; then echo "ERROR: An error occured when trying to initialize the tools. Please check '$__init_tools_log' for more details."1>&2 @@ -147,18 +102,16 @@ if [ ! -e $__INIT_TOOLS_DONE_MARKER ]; then fi fi - if [ $__PATCH_CLI_NUGET_FRAMEWORKS -eq 1 ]; then - echo "Updating CLI NuGet Frameworks map..." - cp $__TOOLRUNTIME_DIR/NuGet.Frameworks.dll $__TOOLRUNTIME_DIR/dotnetcli/sdk/$__DOTNET_TOOLS_VERSION >> $__init_tools_log - if [ "$?" != "0" ]; then - echo "ERROR: An error occured when updating Nuget for CLI . Please check '$__init_tools_log' for more details."1>&2 - exit 1 - fi - fi + echo "Making all .sh files executable under Tools." + # Executables restored with .NET Core 2.0 do not have executable permission flags. https://github.com/NuGet/Home/issues/4424 + ls $__scriptpath/Tools/*.sh | xargs chmod +x + ls $__scriptpath/Tools/scripts/docker/*.sh | xargs chmod +x + + Tools/crossgen.sh $__scriptpath/Tools touch $__INIT_TOOLS_DONE_MARKER echo "Done initializing tools." else echo "Tools are already initialized" -fi +fi
\ No newline at end of file |