1f7b455e2c32c6b943a0879d1d571b71915a033a2Ian Parkinson#!/bin/bash 2f7b455e2c32c6b943a0879d1d571b71915a033a2Ian Parkinson# 3f7b455e2c32c6b943a0879d1d571b71915a033a2Ian Parkinson# Copyright 2013 The Android Open Source Project. 4f7b455e2c32c6b943a0879d1d571b71915a033a2Ian Parkinson# 5f7b455e2c32c6b943a0879d1d571b71915a033a2Ian Parkinson# Retrieves the current Objenesis source code into the current directory. 6f7b455e2c32c6b943a0879d1d571b71915a033a2Ian Parkinson# Does not create a GIT commit. 7f7b455e2c32c6b943a0879d1d571b71915a033a2Ian Parkinson 8f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffin# Force stop on first error. 9f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffinset -e 10f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffin 11f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffinif [ $# -ne 1 ]; then 12f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffin echo "$0 <version>" >&2 13f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffin exit 1; 14f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffinfi 15f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffin 16f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffinif [ -z "$ANDROID_BUILD_TOP" ]; then 17f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffin echo "Missing environment variables. Did you run build/envsetup.sh and lunch?" >&2 18f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffin exit 1 19f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffinfi 20f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffin 21f51a26aaaa58b66af595d9975bf84025db1662cdPaul DuffinVERSION=${1} 22f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffin 23f51a26aaaa58b66af595d9975bf84025db1662cdPaul DuffinSOURCE="https://github.com/easymock/objenesis" 24f7b455e2c32c6b943a0879d1d571b71915a033a2Ian ParkinsonINCLUDE=" 25f7b455e2c32c6b943a0879d1d571b71915a033a2Ian Parkinson LICENSE.txt 26f7b455e2c32c6b943a0879d1d571b71915a033a2Ian Parkinson main 27f7b455e2c32c6b943a0879d1d571b71915a033a2Ian Parkinson tck 28f7b455e2c32c6b943a0879d1d571b71915a033a2Ian Parkinson tck-android 29f7b455e2c32c6b943a0879d1d571b71915a033a2Ian Parkinson " 30f7b455e2c32c6b943a0879d1d571b71915a033a2Ian Parkinson 31f51a26aaaa58b66af595d9975bf84025db1662cdPaul DuffinEXCLUDE=" 32f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffin main/.settings/ 33f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffin tck-android/.settings 34f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffin tck-android/lint.xml 35f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffin tck-android/project.properties 36f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffin " 37f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffin 38f7b455e2c32c6b943a0879d1d571b71915a033a2Ian Parkinsonworking_dir="$(mktemp -d)" 39f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffin#trap "echo \"Removing temporary directory\"; rm -rf $working_dir" EXIT 40f7b455e2c32c6b943a0879d1d571b71915a033a2Ian Parkinson 41f7b455e2c32c6b943a0879d1d571b71915a033a2Ian Parkinsonecho "Fetching Objenesis source into $working_dir" 42f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffingit clone $SOURCE $working_dir/source 43f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffin(cd $working_dir/source; git checkout $VERSION) 44f7b455e2c32c6b943a0879d1d571b71915a033a2Ian Parkinson 45f7b455e2c32c6b943a0879d1d571b71915a033a2Ian Parkinsonfor include in ${INCLUDE}; do 46f7b455e2c32c6b943a0879d1d571b71915a033a2Ian Parkinson echo "Updating $include" 47f7b455e2c32c6b943a0879d1d571b71915a033a2Ian Parkinson rm -rf $include 48f7b455e2c32c6b943a0879d1d571b71915a033a2Ian Parkinson cp -R $working_dir/source/$include . 49f7b455e2c32c6b943a0879d1d571b71915a033a2Ian Parkinsondone; 50f7b455e2c32c6b943a0879d1d571b71915a033a2Ian Parkinson 51f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffinfor exclude in ${EXCLUDE}; do 52f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffin echo "Excluding $exclude" 53f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffin rm -r $exclude 54f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffindone; 55f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffin 56f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffin# Move the tck-android AndroidManifest.xml into the correct position. 57f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffinmv tck-android/src/main/AndroidManifest.xml tck-android/AndroidManifest.xml 58f7b455e2c32c6b943a0879d1d571b71915a033a2Ian Parkinson 59f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffin# Update the version and binary JAR URL. 60f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffinperl -pi -e "s|^Version: .*$|Version: ${VERSION}|" "README.version" 61f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffin 62f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffin# Remove any documentation about local modifications. 63f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffinmv README.version README.tmp 64f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffingrep -B 100 "Local Modifications" README.tmp > README.version 65f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffinecho " None" >> README.version 66f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffinrm README.tmp 67f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffin 68f51a26aaaa58b66af595d9975bf84025db1662cdPaul Duffinecho "Done" 69