blob: 2c942a0e4136c4348eed357cb6981738aa71769f [file] [log] [blame]
#!/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