blob: 3e74904e06508e36531379e1a4b5c607263b707b [file] [log] [blame]
Aurimas Liutikasc1250fc2021-02-04 16:08:34 -08001#!/bin/bash
Aurimas Liutikas65920d32023-02-14 18:38:24 -08002
3function echoAndDo() {
4echo "$@"
5eval "$@"
6}
7
Jeff Gastonb5572962023-09-07 16:49:51 -04008# Versions that the user should update when running this script
Aurimas Liutikas65920d32023-02-14 18:38:24 -08009echo Getting Studio version and link
Jakub Gielzak53423eb2023-10-31 15:51:48 +000010AGP_VERSION=${1:-8.3.0-alpha10}
11STUDIO_VERSION_STRING=${2:-"Android Studio Iguana | 2023.2.1 Canary 10"}
Jeff Gastonb5572962023-09-07 16:49:51 -040012
13# Get studio version number from version name
Aurimas Liutikas65920d32023-02-14 18:38:24 -080014STUDIO_IFRAME_LINK=`curl "https://developer.android.com/studio/archive.html" | grep "<iframe " | sed "s/.* src=\"\([^\"]*\)\".*/\1/g"`
15echo iframe link $STUDIO_IFRAME_LINK
16STUDIO_IFRAME_REDIRECT=`curl -s $STUDIO_IFRAME_LINK | grep href | sed 's/.*href="\([^"]*\)".*/\1/g'`
17echo iframe redirect $STUDIO_IFRAME_REDIRECT
18STUDIO_LINK=`curl -s $STUDIO_IFRAME_REDIRECT | grep -C30 "$STUDIO_VERSION_STRING" | grep Linux | tail -n 1 | sed 's/.*a href="\(.*\).*"/\1/g' | sed 's/>.*//'`
19echo STUDIO_LINK: $STUDIO_LINK
20if [ "$STUDIO_LINK" == "" ]; then
21echo "Error: STUDIO_LINK must not be empty. Open this script and look for parsing errors. Does studio version '$STUDIO_VERSION_STRING' exist?"
22exit 1
23fi
Aurimas Liutikase54847d2021-05-19 10:58:12 -070024STUDIO_VERSION=`echo $STUDIO_LINK | sed "s/.*ide-zips\/\(.*\)\/android-studio-.*/\1/g"`
Aurimas Liutikasc1250fc2021-02-04 16:08:34 -080025
26# Update AGP
Aurimas Liutikas4e9ba5f2022-01-13 16:15:21 -080027ARTIFACTS_TO_DOWNLOAD="com.android.tools.build:gradle:$AGP_VERSION,"
28ARTIFACTS_TO_DOWNLOAD+="androidx.databinding:viewbinding:$AGP_VERSION,"
Fred Sladkey2875ccf2023-11-06 16:01:31 -050029ARTIFACTS_TO_DOWNLOAD+="com.android.kotlin.multiplatform.library:com.android.kotlin.multiplatform.library.gradle.plugin:$AGP_VERSION,"
Aurimas Liutikasc1250fc2021-02-04 16:08:34 -080030AAPT2_VERSIONS=`curl "https://dl.google.com/dl/android/maven2/com/android/tools/build/group-index.xml" | grep aapt2-proto | sed 's/.*versions="\(.*\)"\/>/\1/g'`
31AAPT2_VERSION=`echo $AAPT2_VERSIONS | sed "s/.*\($AGP_VERSION-[0-9]*\).*/\1/g"`
Aurimas Liutikas4e9ba5f2022-01-13 16:15:21 -080032ARTIFACTS_TO_DOWNLOAD+="com.android.tools.build:aapt2:$AAPT2_VERSION:linux,"
33ARTIFACTS_TO_DOWNLOAD+="com.android.tools.build:aapt2:$AAPT2_VERSION:osx,"
34ARTIFACTS_TO_DOWNLOAD+="com.android.tools.build:aapt2:$AAPT2_VERSION,"
Aurimas Liutikasc1250fc2021-02-04 16:08:34 -080035LINT_VERSIONS=`curl "https://dl.google.com/dl/android/maven2/com/android/tools/lint/group-index.xml" | grep lint | sed 's/.*versions="\(.*\)"\/>/\1/g'`
36LINT_MINOR_VERSION=`echo $AGP_VERSION | sed 's/[0-9]\+\.\(.*\)/\1/g'`
37LINT_VERSION=`echo $LINT_VERSIONS | sed "s/.*[,| ]\([0-9]\+\.$LINT_MINOR_VERSION\).*/\1/g"`
Aurimas Liutikas4e9ba5f2022-01-13 16:15:21 -080038ARTIFACTS_TO_DOWNLOAD+="com.android.tools.lint:lint:$LINT_VERSION,"
39ARTIFACTS_TO_DOWNLOAD+="com.android.tools.lint:lint-tests:$LINT_VERSION,"
40ARTIFACTS_TO_DOWNLOAD+="com.android.tools.lint:lint-gradle:$LINT_VERSION,"
Aurimas Liutikas39f22262022-11-03 09:00:24 -070041ARTIFACTS_TO_DOWNLOAD+="com.android.tools:nine:$LINT_VERSION,"
Aurimas Liutikasc1250fc2021-02-04 16:08:34 -080042
Aurimas Liutikas65920d32023-02-14 18:38:24 -080043# Update libs.versions.toml
44echo Updating dependency versions
Aurimas Liutikas78273a32021-07-08 16:49:13 -070045sed -i "s/androidGradlePlugin = .*/androidGradlePlugin = \"$AGP_VERSION\"/g" gradle/libs.versions.toml
Jeff Gastona4baa262021-11-02 15:29:55 -040046sed -i "s/androidLint = \".*/androidLint = \"$LINT_VERSION\"/g" gradle/libs.versions.toml
Aurimas Liutikas78273a32021-07-08 16:49:13 -070047sed -i "s/androidStudio = .*/androidStudio = \"$STUDIO_VERSION\"/g" gradle/libs.versions.toml
Dustin Lam1ecd1f22021-07-15 15:29:45 -070048
49# Pull all UTP artifacts for ADT version
50ADT_VERSION=${3:-$LINT_VERSION}
Aurimas Liutikasb0470e52022-01-31 15:09:55 -080051while read line
Dustin Lam1ecd1f22021-07-15 15:29:45 -070052do
53ARTIFACT=`echo $line | sed 's/<\([[:lower:]-]\+\).*/\1/g'`
Aurimas Liutikas4e9ba5f2022-01-13 16:15:21 -080054ARTIFACTS_TO_DOWNLOAD+="com.android.tools.utp:$ARTIFACT:$ADT_VERSION,"
Aurimas Liutikasb0470e52022-01-31 15:09:55 -080055done < <(curl -sL "https://dl.google.com/android/maven2/com/android/tools/utp/group-index.xml" \
56| tail -n +3 \
57| head -n -1)
Dustin Lam1ecd1f22021-07-15 15:29:45 -070058
Jakub Gielzak53423eb2023-10-31 15:51:48 +000059ATP_VERSION=${4:-0.0.9-alpha01}
Aurimas Liutikas4e9ba5f2022-01-13 16:15:21 -080060ARTIFACTS_TO_DOWNLOAD+="com.google.testing.platform:android-test-plugin:$ATP_VERSION,"
61ARTIFACTS_TO_DOWNLOAD+="com.google.testing.platform:launcher:$ATP_VERSION,"
62ARTIFACTS_TO_DOWNLOAD+="com.google.testing.platform:android-driver-instrumentation:$ATP_VERSION,"
63ARTIFACTS_TO_DOWNLOAD+="com.google.testing.platform:core:$ATP_VERSION"
Dustin Lam1ecd1f22021-07-15 15:29:45 -070064
Aurimas Liutikas4e9ba5f2022-01-13 16:15:21 -080065# Download all the artifacts
Aurimas Liutikas65920d32023-02-14 18:38:24 -080066echoAndDo ./development/importMaven/importMaven.sh "$ARTIFACTS_TO_DOWNLOAD"