1*2ffc472cSXin Li#!/bin/bash 2*2ffc472cSXin Li# 3*2ffc472cSXin Li# Copyright 2017 The Android Open Source Project. 4*2ffc472cSXin Li# 5*2ffc472cSXin Li# Retrieves the current Dexmaker to source code into the current directory, excluding portions related 6*2ffc472cSXin Li# to mockito's internal build system and javadoc. 7*2ffc472cSXin Li 8*2ffc472cSXin Li# Force stop on first error. 9*2ffc472cSXin Liset -e 10*2ffc472cSXin Li 11*2ffc472cSXin Liif [ $# -ne 1 ]; then 12*2ffc472cSXin Li echo "$0 <version>" >&2 13*2ffc472cSXin Li exit 1; 14*2ffc472cSXin Lifi 15*2ffc472cSXin Li 16*2ffc472cSXin Liif [ -z "$ANDROID_BUILD_TOP" ]; then 17*2ffc472cSXin Li echo "Missing environment variables. Did you run build/envsetup.sh and lunch?" >&2 18*2ffc472cSXin Li exit 1 19*2ffc472cSXin Lifi 20*2ffc472cSXin Li 21*2ffc472cSXin LiVERSION=${1} 22*2ffc472cSXin Li 23*2ffc472cSXin LiSOURCE="https://github.com/linkedin/dexmaker" 24*2ffc472cSXin LiINCLUDE=" 25*2ffc472cSXin Li LICENSE 26*2ffc472cSXin Li 27*2ffc472cSXin Li dexmaker 28*2ffc472cSXin Li dexmaker-mockito 29*2ffc472cSXin Li dexmaker-mockito-inline 30*2ffc472cSXin Li dexmaker-mockito-inline-extended 31*2ffc472cSXin Li 32*2ffc472cSXin Li dexmaker-mockito-inline-dispatcher 33*2ffc472cSXin Li 34*2ffc472cSXin Li dexmaker-tests 35*2ffc472cSXin Li dexmaker-mockito-tests 36*2ffc472cSXin Li dexmaker-mockito-inline-tests 37*2ffc472cSXin Li dexmaker-mockito-inline-extended-tests 38*2ffc472cSXin Li " 39*2ffc472cSXin Li 40*2ffc472cSXin LiEXCLUDE=" 41*2ffc472cSXin Li " 42*2ffc472cSXin Li 43*2ffc472cSXin Liworking_dir="$(mktemp -d)" 44*2ffc472cSXin Litrap "echo \"Removing temporary directory\"; rm -rf $working_dir" EXIT 45*2ffc472cSXin Li 46*2ffc472cSXin Liecho "Fetching Dexmaker source into $working_dir" 47*2ffc472cSXin Ligit clone $SOURCE $working_dir/source 48*2ffc472cSXin LiORG_DIR=$(pwd) 49*2ffc472cSXin Licd $working_dir/source 50*2ffc472cSXin Ligit checkout $VERSION 51*2ffc472cSXin LiSHA=$(git rev-parse $VERSION) 52*2ffc472cSXin Licd $ORG_DIR 53*2ffc472cSXin Li 54*2ffc472cSXin Lifor include in ${INCLUDE}; do 55*2ffc472cSXin Li echo "Updating $include" 56*2ffc472cSXin Li rm -rf $include 57*2ffc472cSXin Li mkdir -p $(dirname $include) 58*2ffc472cSXin Li cp -R $working_dir/source/$include $include 59*2ffc472cSXin Lidone; 60*2ffc472cSXin Li 61*2ffc472cSXin Lifor exclude in ${EXCLUDE}; do 62*2ffc472cSXin Li echo "Excluding $exclude" 63*2ffc472cSXin Li rm -r $exclude 64*2ffc472cSXin Lidone; 65*2ffc472cSXin Li 66*2ffc472cSXin Li# Remove 3rd party code 67*2ffc472cSXin Lirm -r dexmaker-mockito-inline/external 68*2ffc472cSXin Li 69*2ffc472cSXin Liecho "Updating README.version" 70*2ffc472cSXin Li 71*2ffc472cSXin Li# Update the version. 72*2ffc472cSXin Liperl -pi -e "s|^Version: .*$|Version: ${VERSION} (${SHA})|" "README.version" 73*2ffc472cSXin Li 74*2ffc472cSXin Li# Remove any documentation about local modifications. 75*2ffc472cSXin Limv README.version README.tmp 76*2ffc472cSXin Ligrep -B 100 "Local Modifications" README.tmp > README.version 77*2ffc472cSXin Liecho " None" >> README.version 78*2ffc472cSXin Lirm README.tmp 79*2ffc472cSXin Li 80*2ffc472cSXin Liecho "Done" 81