1f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson#!/bin/bash
2f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson#
3f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson# Copyright 2013 The Android Open Source Project.
4f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson#
5f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson# Retrieves the current Mockito source code into the current direcory, exlcuding portions related
6f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson# to constructing Mock objects in the JVM.
7f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson
8f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian ParkinsonSOURCE="git://github.com/mockito/mockito.git"
9f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian ParkinsonINCLUDE="
10f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson    LICENSE
11f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson    src
12f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson    "
13f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson
14f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian ParkinsonEXCLUDE="
15f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson    src/org/mockito/internal/creation/cglib
16f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson    src/org/mockito/internal/creation/jmock
17f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson    src/org/mockito/internal/creation/AbstractMockitoMethodProxy.java
18f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson    src/org/mockito/internal/creation/AcrossJVMSerializationFeature.java
19f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson    src/org/mockito/internal/creation/CglibMockMaker.java
20f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson    src/org/mockito/internal/creation/DelegatingMockitoMethodProxy.java
21f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson    src/org/mockito/internal/creation/MethodInterceptorFilter.java
22f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson    src/org/mockito/internal/creation/MockitoMethodProxy.java
23f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson    src/org/mockito/internal/creation/SerializableMockitoMethodProxy.java
24f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson    src/org/mockito/internal/invocation/realmethod/FilteredCGLIBProxyRealMethod.java
25f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson    src/org/mockito/internal/invocation/realmethod/CGLIBProxyRealMethod.java
26f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson    src/org/mockito/internal/invocation/realmethod/HasCGLIBMethodProxy.java
27f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson    "
28f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson
29f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinsonworking_dir="$(mktemp -d)"
30f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinsontrap "echo \"Removing temporary directory\"; rm -rf $working_dir" EXIT
31f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson
32f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinsonecho "Fetching Mockito source into $working_dir"
33f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinsongit clone $SOURCE $working_dir/source
34f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson
35f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinsonfor include in ${INCLUDE}; do
36f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson  echo "Updating $include"
37f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson  rm -rf $include
38f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson  cp -R $working_dir/source/$include .
39f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinsondone;
40f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson
41f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinsonfor exclude in ${EXCLUDE}; do
42f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson  echo "Excluding $exclude"
43f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson  rm -r $exclude
44f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinsondone;
45f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson
46f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinsonecho "Done"
47f8855a2f9609e07c80fb2c15b2b514e977dabe76Ian Parkinson
48