blob: d0d8659c96441bc96407ae90bb8017e46ea5f8c1 [file] [log] [blame]
Yigit Boyar32794452023-10-31 19:54:24 -07001#!/bin/bash
2set -x
3set -e
4function relativize() {
5 python3 -c "import os.path; print(os.path.relpath('$1', '$2'))"
6}
7
8PLAYGROUND_PROJECTS=( $(find . -not -path "playground" -name "settings.gradle" -exec grep -l "selectProjectsFromAndroidX" {} \+) )
9
10TARGET_PG_ROOT="./playground-projects"
11
12function deleteOldPlaygroundFiles {
13 OLD_PG=$(relativize $1)
14 rm -f "$OLD_PG/gradle"
15 rm -f "$OLD_PG/gradlew"
16 rm -f "$OLD_PG/gradlew.bat"
17 rm -f "$OLD_PG/gradle.properties"
18 rm -f "$OLD_PG/settings.gradle"
19 rm -rf "$OLD_PG/buildSrc"
20 rm -rf "$OLD_PG/.idea"
21}
22
23function createNewPlaygroundIn {
24 SETTINGS_FILE=$(relativize $1)
25 NEW_PG=$(relativize $2)
26 echo "create PG from $SETTINGS_FILE into $NEW_PG"
27 mkdir -p $NEW_PG
28 $(cp $SETTINGS_FILE $NEW_PG/.)
29 ls $NEW_PG
30 SETUP_PG_REL_PATH=$(realpath playground-common/setup-playground.sh)
31 echo "gonna execute cd $NEW_PG && $SETUP_PG_REL_PATH)"
32 (cd $NEW_PG; $SETUP_PG_REL_PATH)
33 REL_PLUGIN_PATH=$(relativize "playground-common/configure-plugin-management.gradle" "$NEW_PG")
34 REL_ROOT_PATH=$(relativize "." "$NEW_PG")
35 NEW_SETTINGS_FILE=$(relativize "$NEW_PG/settings.gradle")
36
37 echo "will replace pg path to $REL_PLUGIN_PATH"
38 sed -i '' -E "s#\".*configure-plugin-management.gradle\"#\"$REL_PLUGIN_PATH\"#g" $NEW_SETTINGS_FILE
39 echo "will replace setupPlayground calls"
40 sed -i '' -E "s#setupPlayground\(\".*\"\)#setupPlayground\(\"$REL_ROOT_PATH\"\)#g" $NEW_SETTINGS_FILE
41}
42
43function migrateOldPlayground {
44 OLD_PG=$1
45 NEW_PG="$TARGET_PG_ROOT/$OLD_PG-playground"
46 createNewPlaygroundIn "$OLD_PG/settings.gradle" $NEW_PG
47 deleteOldPlaygroundFiles $OLD_PG
48}
49
50for OLD_PLAYGROUND_PROJECT in "${PLAYGROUND_PROJECTS[@]}"
51do
52 PG_PATH=$(dirname $OLD_PLAYGROUND_PROJECT)
53 migrateOldPlayground $PG_PATH
54done