xref: /aosp_15_r20/external/dexmaker/update_source.sh (revision 2ffc472c461b441c3ddd38c52c72da5a6be8f680)
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