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