#!/bin/bash
#
# Copyright 2017 The Android Open Source Project.
#
# Retrieves the current Dexmaker to source code into the current directory, excluding portions related
# to mockito's internal build system and javadoc.
# Force stop on first error.
set -e
if [ $# -ne 1 ]; then
echo "$0 <version>" >&2
exit 1;
fi
if [ -z "$ANDROID_BUILD_TOP" ]; then
echo "Missing environment variables. Did you run build/envsetup.sh and lunch?" >&2
exit 1
fi
VERSION=${1}
SOURCE="https://github.com/linkedin/dexmaker"
INCLUDE="
LICENSE
dexmaker
dexmaker-mockito
dexmaker-mockito-tests
dexmaker-mockito-inline
dexmaker-mockito-inline-dispatcher
dexmaker-mockito-inline-tests/src
dexmaker-tests/src
"
EXCLUDE="
"
working_dir="$(mktemp -d)"
trap "echo \"Removing temporary directory\"; rm -rf $working_dir" EXIT
echo "Fetching Dexmaker source into $working_dir"
git clone $SOURCE $working_dir/source
ORG_DIR=$(pwd)
cd $working_dir/source
git checkout $VERSION
SHA=$(git rev-parse $VERSION)
cd $ORG_DIR
for include in ${INCLUDE}; do
echo "Updating $include"
rm -rf $include
mkdir -p $(dirname $include)
cp -R $working_dir/source/$include $include
done;
for exclude in ${EXCLUDE}; do
echo "Excluding $exclude"
rm -r $exclude
done;
# Move the dexmaker-tests AndroidManifest.xml into the correct position.
mv dexmaker-tests/src/main/AndroidManifest.xml dexmaker-tests/AndroidManifest.xml
mv dexmaker-mockito-tests/src/main/AndroidManifest.xml dexmaker-mockito-tests/AndroidManifest.xml
mv dexmaker-mockito-inline-tests/src/main/AndroidManifest.xml dexmaker-mockito-inline-tests/AndroidManifest.xml
# Remove 3rd party code
rm -r dexmaker-mockito-inline/external
echo "Updating README.version"
# Update the version.
perl -pi -e "s|^Version: .*$|Version: ${VERSION} (${SHA})|" "README.version"
# Remove any documentation about local modifications.
mv README.version README.tmp
grep -B 100 "Local Modifications" README.tmp > README.version
echo " None" >> README.version
rm README.tmp
echo "Done"