summaryrefslogtreecommitdiff
path: root/update_googe3.sh
blob: 2c942a0e4136c4348eed357cb6981738aa71769f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#!/bin/bash
# this script uploads binaries to google3.
# if you are not running this in a workstation, you need to mount your workspace into a local folder
#    see: sshfs
# sample invocation ./update_googe3.sh 3.2.0-dev /tmp/my_g3_workspace v3_2_0
VERSION=$1 # 3.1.0-dev
GOOGLE3=$2 # e.g. /tmp/my_g3_workspace
REMOTE_VERSION=$3 # e.g. v3_1_0
if [ ! -e 'integration-tests' ] || [ ! -e 'extensions' ]; then
  echo "must run this under {src}/tools/data-binding"
  exit 1
fi

echo "copying version $VERSION to $GOOGLE3 under version $REMOTE_VERSION"
TMP_JAR_DIR='tmp_jar'
TMP_LIB_DIR='tmp_lib'
TMP_ADAPTERS_DIR='tmp_adapters'
TMP_X_LIB_DIR='tmp_x_lib'
TMP_X_ADAPTERS_DIR='tmp_x_adapters'

CUR_DIR=$PWD;
REPO_DIR="$CUR_DIR/../../out/repo"

# compile
echo "compiling base"
cd $CUR_DIR/../base
gw :pL :makeOfflineRepo --stacktrace

cd $CUR_DIR
create_target_dir() {
  echo "creating target dir $1"
  rm -rf $1
  mkdir $1
}

copy_jar() {
  TARGET=$1
  ARTIFACT_NAME=$2
  NEW_NAME=$3
  cp "$REPO_DIR/com/android/databinding/$ARTIFACT_NAME/$VERSION/$ARTIFACT_NAME-$VERSION.jar" "$TARGET/$NEW_NAME.jar"
  cp "$REPO_DIR/com/android/databinding/$ARTIFACT_NAME/$VERSION/$ARTIFACT_NAME-$VERSION-sources.jar" "$TARGET/$NEW_NAME-src.jar"
}

copy_aar() {
  TARGET=$1
  ARTIFACT_NAME=$2
  NEW_NAME=$3
  cp "$REPO_DIR/com/android/databinding/$ARTIFACT_NAME/$VERSION/$ARTIFACT_NAME-$VERSION.aar" "$TARGET/$NEW_NAME.aar"
  cp "$REPO_DIR/com/android/databinding/$ARTIFACT_NAME/$VERSION/$ARTIFACT_NAME-$VERSION-sources.jar" "$TARGET/$NEW_NAME-src.jar"
}

copy_x_jar() {
  TARGET=$1
  ARTIFACT_NAME=$2
  NEW_NAME=$3
  cp "$REPO_DIR/androidx/databinding/$ARTIFACT_NAME/$VERSION/$ARTIFACT_NAME-$VERSION.jar" "$TARGET/$NEW_NAME.jar"
  cp "$REPO_DIR/androidx/databinding/$ARTIFACT_NAME/$VERSION/$ARTIFACT_NAME-$VERSION-sources.jar" "$TARGET/$NEW_NAME-src.jar"
}

copy_x_aar() {
  TARGET=$1
  ARTIFACT_NAME=$2
  NEW_NAME=$3
  cp "$REPO_DIR/androidx/databinding/$ARTIFACT_NAME/$VERSION/$ARTIFACT_NAME-$VERSION.aar" "$TARGET/$NEW_NAME.aar"
  cp "$REPO_DIR/androidx/databinding/$ARTIFACT_NAME/$VERSION/$ARTIFACT_NAME-$VERSION-sources.jar" "$TARGET/$NEW_NAME-src.jar"
}

remove_restrict_to() {
  sed -i '/RestrictTo/d' $1
  sed -i 's/android\.support\.v7\.widget\.CardView/androidx.cardview.widget.CardView/g' $1
}

# copy jars
create_target_dir $TMP_JAR_DIR
copy_x_jar $TMP_JAR_DIR "databinding-compiler" "compiler"
copy_x_jar $TMP_JAR_DIR "databinding-compiler-common" "compiler_common"
copy_x_jar $TMP_JAR_DIR "databinding-common" "x_common"
copy_jar $TMP_JAR_DIR "baseLibrary" "base"

./gradlew :dB:exec:jar :dB:exec:sourceJar
cp "exec/build/libs/exec-$VERSION.jar" "$TMP_JAR_DIR/exec.jar"
cp "exec/build/libs/exec-$VERSION-sources.jar" "$TMP_JAR_DIR/exec-src.jar"

mkdir -p "$GOOGLE3/third_party/java/android_databinding/$REMOTE_VERSION/."
cp $TMP_JAR_DIR/* "$GOOGLE3/third_party/java/android_databinding/$REMOTE_VERSION/."
# copy library
create_target_dir $TMP_LIB_DIR
copy_aar $TMP_LIB_DIR "library" "library"
cd $TMP_LIB_DIR
unzip library.aar
mv classes.jar "databinding-library.jar"
LIB_REMOTE_LOC=$GOOGLE3/third_party/java/android/android_sdk_linux/extras/android/compatibility/databinding/library/$REMOTE_VERSION/.
mkdir -p $LIB_REMOTE_LOC
cp -r databinding-library.jar AndroidManifest.xml res proguard.txt $LIB_REMOTE_LOC/.
cd $CUR_DIR

# copy X library
create_target_dir $TMP_X_LIB_DIR
copy_x_aar $TMP_X_LIB_DIR "databinding-runtime" "runtime"
cd $TMP_X_LIB_DIR
unzip runtime.aar
mv classes.jar "databinding-runtime.jar"
X_LIB_REMOTE_LOC=$GOOGLE3/third_party/java/androidx/databinding/runtime/$REMOTE_VERSION/.
mkdir -p $X_LIB_REMOTE_LOC
cp -r databinding-runtime.jar AndroidManifest.xml res proguard.txt $X_LIB_REMOTE_LOC
cd $CUR_DIR


# copy baseAdapters source. RestrictTo annotations becomes a problem in Google3 so just strip them.
create_target_dir $TMP_ADAPTERS_DIR
cp -r extensions-support/baseAdapters/src $TMP_ADAPTERS_DIR;

for file in `find $TMP_ADAPTERS_DIR -name "*.java"`
do
    remove_restrict_to "$file"
done
ADAPTERS_REMOTE_LOC=$GOOGLE3/third_party/java/android/android_sdk_linux/extras/android/compatibility/databinding/adapters/$REMOTE_VERSION/.
mkdir -p $ADAPTERS_REMOTE_LOC
cp -r $TMP_ADAPTERS_DIR/src $ADAPTERS_REMOTE_LOC


# copy baseAdapters source. RestrictTo annotations becomes a problem in Google3 so just strip them.
create_target_dir $TMP_X_ADAPTERS_DIR
cp -r extensions/baseAdapters/src $TMP_X_ADAPTERS_DIR;

for file in `find $TMP_X_ADAPTERS_DIR -name "*.java"`
do
    remove_restrict_to "$file"
done
X_ADAPTERS_REMOTE_LOC=$GOOGLE3/third_party/java/androidx/databinding/adapters/$REMOTE_VERSION/.
mkdir -p $X_ADAPTERS_REMOTE_LOC
cp -r $TMP_X_ADAPTERS_DIR/src $X_ADAPTERS_REMOTE_LOC