| #!/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" |