2020-10-23 17:59:08 +03:00
|
|
|
#!/bin/bash -e -o pipefail
|
2023-11-28 02:25:03 +01:00
|
|
|
################################################################################
|
|
|
|
|
## File: install-visualstudio.sh
|
|
|
|
|
## Desc: Install Visual Studio
|
|
|
|
|
################################################################################
|
|
|
|
|
|
2020-09-10 14:34:08 +03:00
|
|
|
source ~/utils/utils.sh
|
|
|
|
|
source ~/utils/xamarin-utils.sh
|
|
|
|
|
|
2022-05-18 16:49:37 +02:00
|
|
|
install_vsmac() {
|
2023-12-21 14:48:28 +01:00
|
|
|
local vsmac_version=$1
|
|
|
|
|
local vsmac_default=$2
|
|
|
|
|
if [[ $vsmac_version == "2019" ]]; then
|
|
|
|
|
vsmac_download_url=$(curl -fsSL "https://aka.ms/manifest/stable" | jq -r '.items[] | select(.genericName=="VisualStudioMac").url')
|
|
|
|
|
elif [[ $vsmac_version == "2022" ]]; then
|
|
|
|
|
vsmac_download_url=$(curl -fsSL "https://aka.ms/manifest/stable-2022" | jq -r '.items[] | select(.genericName=="VisualStudioMac").url')
|
|
|
|
|
elif [[ $vsmac_version == "preview" ]]; then
|
|
|
|
|
vsmac_download_url=$(curl -fsSL "https://aka.ms/manifest/preview" | jq -r '.items[] | select(.genericName=="VisualStudioMac").url')
|
2022-05-18 16:49:37 +02:00
|
|
|
else
|
2023-12-21 14:48:28 +01:00
|
|
|
vsmac_download_url=$(buildVSMacDownloadUrl $vsmac_version)
|
2022-05-18 16:49:37 +02:00
|
|
|
fi
|
|
|
|
|
|
2023-12-21 14:48:28 +01:00
|
|
|
echo "Installing Visual Studio ${vsmac_version} for Mac"
|
2023-11-30 13:39:32 +01:00
|
|
|
TMPMOUNT=$(/usr/bin/mktemp -d /tmp/visualstudio.XXXX)
|
|
|
|
|
mkdir -p "$TMPMOUNT/downloads"
|
2022-05-18 16:49:37 +02:00
|
|
|
|
2024-01-09 14:47:31 +01:00
|
|
|
vsmac_installer=$(download_with_retry $vsmac_download_url "$TMPMOUNT/downloads/${vsmac_download_url##*/}")
|
2020-09-10 14:34:08 +03:00
|
|
|
|
2022-05-18 16:49:37 +02:00
|
|
|
echo "Mounting Visual Studio..."
|
2024-01-09 14:47:31 +01:00
|
|
|
hdiutil attach $vsmac_installer -mountpoint $TMPMOUNT
|
2020-09-10 14:34:08 +03:00
|
|
|
|
2022-05-18 16:49:37 +02:00
|
|
|
echo "Moving Visual Studio to /Applications/..."
|
2024-01-09 14:47:31 +01:00
|
|
|
pushd $TMPMOUNT
|
2022-05-18 16:49:37 +02:00
|
|
|
tar cf - "./Visual Studio.app" | tar xf - -C /Applications/
|
2020-09-10 14:34:08 +03:00
|
|
|
|
2023-12-21 14:48:28 +01:00
|
|
|
if [[ $vsmac_version != $vsmac_default ]]; then
|
|
|
|
|
mv "/Applications/Visual Studio.app" "/Applications/Visual Studio ${vsmac_version}.app"
|
2022-05-18 16:49:37 +02:00
|
|
|
fi
|
2020-09-10 14:34:08 +03:00
|
|
|
|
2022-05-18 16:49:37 +02:00
|
|
|
popd
|
2024-01-09 14:47:31 +01:00
|
|
|
sudo hdiutil detach $TMPMOUNT
|
|
|
|
|
sudo rm -rf $TMPMOUNT
|
2022-05-18 16:49:37 +02:00
|
|
|
}
|
|
|
|
|
|
2023-12-21 14:48:28 +01:00
|
|
|
vsmac_versions=($(get_toolset_value '.xamarin.vsmac.versions[]'))
|
|
|
|
|
default_vsmac_version=$(get_toolset_value '.xamarin.vsmac.default')
|
2020-09-10 14:34:08 +03:00
|
|
|
|
2024-01-09 14:47:31 +01:00
|
|
|
for version in ${vsmac_versions[@]}; do
|
2023-12-21 14:48:28 +01:00
|
|
|
install_vsmac $version $default_vsmac_version
|
2022-05-26 17:05:57 +02:00
|
|
|
done
|
2021-01-20 14:11:00 +07:00
|
|
|
|
|
|
|
|
invoke_tests "Common" "VSMac"
|