Aurimas Liutikas | c1250fc | 2021-02-04 16:08:34 -0800 | [diff] [blame] | 1 | #!/bin/bash |
Aurimas Liutikas | 65920d3 | 2023-02-14 18:38:24 -0800 | [diff] [blame] | 2 | |
| 3 | function echoAndDo() { |
| 4 | echo "$@" |
| 5 | eval "$@" |
| 6 | } |
| 7 | |
Julia McClellan | ff03ac1 | 2024-09-30 09:21:02 -0400 | [diff] [blame] | 8 | # Substitute for `sed -i` because different versions of sed differ in how to supply the argument for -i. |
| 9 | function sedInPlace() { |
| 10 | TEMP_FILE=".sedOutput.tmp" |
| 11 | sed "$1" $2 > $TEMP_FILE |
| 12 | cat $TEMP_FILE > $2 |
| 13 | rm $TEMP_FILE |
| 14 | } |
| 15 | |
Jeff Gaston | b557296 | 2023-09-07 16:49:51 -0400 | [diff] [blame] | 16 | # Versions that the user should update when running this script |
Aurimas Liutikas | 65920d3 | 2023-02-14 18:38:24 -0800 | [diff] [blame] | 17 | echo Getting Studio version and link |
Louis Pullen-Freilich | 9a5d908 | 2025-01-08 06:34:49 -0800 | [diff] [blame] | 18 | AGP_VERSION=${1:-8.9.0-alpha01} |
| 19 | STUDIO_VERSION_STRING=${2:-"Android Studio Meerkat | 2024.3.1 Canary 1"} |
Jeff Gaston | b557296 | 2023-09-07 16:49:51 -0400 | [diff] [blame] | 20 | |
| 21 | # Get studio version number from version name |
Aurimas Liutikas | 65920d3 | 2023-02-14 18:38:24 -0800 | [diff] [blame] | 22 | STUDIO_IFRAME_LINK=`curl "https://developer.android.com/studio/archive.html" | grep "<iframe " | sed "s/.* src=\"\([^\"]*\)\".*/\1/g"` |
| 23 | echo iframe link $STUDIO_IFRAME_LINK |
| 24 | STUDIO_IFRAME_REDIRECT=`curl -s $STUDIO_IFRAME_LINK | grep href | sed 's/.*href="\([^"]*\)".*/\1/g'` |
| 25 | echo iframe redirect $STUDIO_IFRAME_REDIRECT |
| 26 | STUDIO_LINK=`curl -s $STUDIO_IFRAME_REDIRECT | grep -C30 "$STUDIO_VERSION_STRING" | grep Linux | tail -n 1 | sed 's/.*a href="\(.*\).*"/\1/g' | sed 's/>.*//'` |
| 27 | echo STUDIO_LINK: $STUDIO_LINK |
| 28 | if [ "$STUDIO_LINK" == "" ]; then |
| 29 | echo "Error: STUDIO_LINK must not be empty. Open this script and look for parsing errors. Does studio version '$STUDIO_VERSION_STRING' exist?" |
| 30 | exit 1 |
| 31 | fi |
Aurimas Liutikas | e54847d | 2021-05-19 10:58:12 -0700 | [diff] [blame] | 32 | STUDIO_VERSION=`echo $STUDIO_LINK | sed "s/.*ide-zips\/\(.*\)\/android-studio-.*/\1/g"` |
Aurimas Liutikas | c1250fc | 2021-02-04 16:08:34 -0800 | [diff] [blame] | 33 | |
| 34 | # Update AGP |
Aurimas Liutikas | 4e9ba5f | 2022-01-13 16:15:21 -0800 | [diff] [blame] | 35 | ARTIFACTS_TO_DOWNLOAD="com.android.tools.build:gradle:$AGP_VERSION," |
| 36 | ARTIFACTS_TO_DOWNLOAD+="androidx.databinding:viewbinding:$AGP_VERSION," |
Fred Sladkey | 2875ccf | 2023-11-06 16:01:31 -0500 | [diff] [blame] | 37 | ARTIFACTS_TO_DOWNLOAD+="com.android.kotlin.multiplatform.library:com.android.kotlin.multiplatform.library.gradle.plugin:$AGP_VERSION," |
Fred Sladkey | 1e38ee3 | 2024-07-30 13:55:01 -0400 | [diff] [blame] | 38 | ARTIFACTS_TO_DOWNLOAD+="com.android.settings:com.android.settings.gradle.plugin:$AGP_VERSION," |
Aurimas Liutikas | c1250fc | 2021-02-04 16:08:34 -0800 | [diff] [blame] | 39 | AAPT2_VERSIONS=`curl "https://dl.google.com/dl/android/maven2/com/android/tools/build/group-index.xml" | grep aapt2-proto | sed 's/.*versions="\(.*\)"\/>/\1/g'` |
| 40 | AAPT2_VERSION=`echo $AAPT2_VERSIONS | sed "s/.*\($AGP_VERSION-[0-9]*\).*/\1/g"` |
Aurimas Liutikas | 4e9ba5f | 2022-01-13 16:15:21 -0800 | [diff] [blame] | 41 | ARTIFACTS_TO_DOWNLOAD+="com.android.tools.build:aapt2:$AAPT2_VERSION:linux," |
| 42 | ARTIFACTS_TO_DOWNLOAD+="com.android.tools.build:aapt2:$AAPT2_VERSION:osx," |
| 43 | ARTIFACTS_TO_DOWNLOAD+="com.android.tools.build:aapt2:$AAPT2_VERSION," |
Aurimas Liutikas | c1250fc | 2021-02-04 16:08:34 -0800 | [diff] [blame] | 44 | LINT_VERSIONS=`curl "https://dl.google.com/dl/android/maven2/com/android/tools/lint/group-index.xml" | grep lint | sed 's/.*versions="\(.*\)"\/>/\1/g'` |
Julia McClellan | ff03ac1 | 2024-09-30 09:21:02 -0400 | [diff] [blame] | 45 | LINT_MINOR_VERSION=`echo $AGP_VERSION | sed -r 's/[0-9]+\.(.*)/\1/g'` |
| 46 | LINT_VERSION=`echo $LINT_VERSIONS | sed -r "s/.*[,| ]([0-9]+\.$LINT_MINOR_VERSION).*/\1/g"` |
Aurimas Liutikas | 4e9ba5f | 2022-01-13 16:15:21 -0800 | [diff] [blame] | 47 | ARTIFACTS_TO_DOWNLOAD+="com.android.tools.lint:lint:$LINT_VERSION," |
| 48 | ARTIFACTS_TO_DOWNLOAD+="com.android.tools.lint:lint-tests:$LINT_VERSION," |
| 49 | ARTIFACTS_TO_DOWNLOAD+="com.android.tools.lint:lint-gradle:$LINT_VERSION," |
Aurimas Liutikas | 39f2226 | 2022-11-03 09:00:24 -0700 | [diff] [blame] | 50 | ARTIFACTS_TO_DOWNLOAD+="com.android.tools:ninepatch:$LINT_VERSION," |
Aurimas Liutikas | c1250fc | 2021-02-04 16:08:34 -0800 | [diff] [blame] | 51 | |
Aurimas Liutikas | 65920d3 | 2023-02-14 18:38:24 -0800 | [diff] [blame] | 52 | # Update libs.versions.toml |
| 53 | echo Updating dependency versions |
Julia McClellan | 5a3e712 | 2024-10-16 11:16:35 -0400 | [diff] [blame] | 54 | sedInPlace "s/androidGradlePlugin = \".*/androidGradlePlugin = \"$AGP_VERSION\"/g" gradle/libs.versions.toml |
Julia McClellan | ff03ac1 | 2024-09-30 09:21:02 -0400 | [diff] [blame] | 55 | sedInPlace "s/androidLint = \".*/androidLint = \"$LINT_VERSION\"/g" gradle/libs.versions.toml |
Julia McClellan | 5a3e712 | 2024-10-16 11:16:35 -0400 | [diff] [blame] | 56 | sedInPlace "s/androidStudio = \".*/androidStudio = \"$STUDIO_VERSION\"/g" gradle/libs.versions.toml |
Dustin Lam | 1ecd1f2 | 2021-07-15 15:29:45 -0700 | [diff] [blame] | 57 | |
Julia McClellan | ff03ac1 | 2024-09-30 09:21:02 -0400 | [diff] [blame] | 58 | # update settings.gradle -- don't match the line with :$agpOverride |
| 59 | sedInPlace "s/com.android.settings:com.android.settings.gradle.plugin:[^$][0-9a-z\.\-]*/com.android.settings:com.android.settings.gradle.plugin:$AGP_VERSION/g" settings.gradle |
Fred Sladkey | 1e38ee3 | 2024-07-30 13:55:01 -0400 | [diff] [blame] | 60 | |
Dustin Lam | 1ecd1f2 | 2021-07-15 15:29:45 -0700 | [diff] [blame] | 61 | # Pull all UTP artifacts for ADT version |
| 62 | ADT_VERSION=${3:-$LINT_VERSION} |
Aurimas Liutikas | b0470e5 | 2022-01-31 15:09:55 -0800 | [diff] [blame] | 63 | while read line |
Dustin Lam | 1ecd1f2 | 2021-07-15 15:29:45 -0700 | [diff] [blame] | 64 | do |
Julia McClellan | ff03ac1 | 2024-09-30 09:21:02 -0400 | [diff] [blame] | 65 | ARTIFACT=`echo $line | sed -r 's/<([[:lower:]-]+).*/\1/g'` |
Aurimas Liutikas | 4e9ba5f | 2022-01-13 16:15:21 -0800 | [diff] [blame] | 66 | ARTIFACTS_TO_DOWNLOAD+="com.android.tools.utp:$ARTIFACT:$ADT_VERSION," |
Aurimas Liutikas | b0470e5 | 2022-01-31 15:09:55 -0800 | [diff] [blame] | 67 | done < <(curl -sL "https://dl.google.com/android/maven2/com/android/tools/utp/group-index.xml" \ |
| 68 | | tail -n +3 \ |
Julia McClellan | ff03ac1 | 2024-09-30 09:21:02 -0400 | [diff] [blame] | 69 | | sed '$ d') # Remove the last line |
Dustin Lam | 1ecd1f2 | 2021-07-15 15:29:45 -0700 | [diff] [blame] | 70 | |
Aurimas Liutikas | 36de1fe | 2023-11-29 15:12:02 -0800 | [diff] [blame] | 71 | ATP_VERSION=${4:-0.0.9-alpha02} |
Aurimas Liutikas | 4e9ba5f | 2022-01-13 16:15:21 -0800 | [diff] [blame] | 72 | ARTIFACTS_TO_DOWNLOAD+="com.google.testing.platform:android-test-plugin:$ATP_VERSION," |
| 73 | ARTIFACTS_TO_DOWNLOAD+="com.google.testing.platform:launcher:$ATP_VERSION," |
| 74 | ARTIFACTS_TO_DOWNLOAD+="com.google.testing.platform:android-driver-instrumentation:$ATP_VERSION," |
| 75 | ARTIFACTS_TO_DOWNLOAD+="com.google.testing.platform:core:$ATP_VERSION" |
Dustin Lam | 1ecd1f2 | 2021-07-15 15:29:45 -0700 | [diff] [blame] | 76 | |
Aurimas Liutikas | 4e9ba5f | 2022-01-13 16:15:21 -0800 | [diff] [blame] | 77 | # Download all the artifacts |
Aurimas Liutikas | 65920d3 | 2023-02-14 18:38:24 -0800 | [diff] [blame] | 78 | echoAndDo ./development/importMaven/importMaven.sh "$ARTIFACTS_TO_DOWNLOAD" |