aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/sync_google3.sh
blob: 1d330ec573d34000feec04d04db2805d041a39ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/bin/bash
# Copyright 2014 Google Inc.
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Syncs //depot/google3/third_party/skia/HEAD to the last known good revision of
# Skia. If this script is not run from a Piper client, creates a new CitC
# client. Also updates README.google.
#
# Usage:
#      ./tools/sync_google3.sh

prodcertstatus -q || (echo "Please run prodaccess." 1>&2; exit 1)
source gbash.sh || exit 2

set -e

MY_DIR="$(gbash::get_absolute_caller_dir)"
LKGR="$(${MY_DIR}/get_skia_lkgr.sh)"

gbash::get_google3_dir && GOOGLE3="$(gbash::get_google3_dir)"
if [ -z "${GOOGLE3}" ]; then
  CLIENT_NAME="sync_skia_$(date '+%F-%H-%M-%S')"
  ${MY_DIR}/create_skia_google3_client.sh "${CLIENT_NAME}"
  GOOGLE3="/google/src/cloud/${USER}/${CLIENT_NAME}/google3"
fi
cd "${GOOGLE3}/third_party/skia/HEAD"
${MY_DIR}/git_clone_to_google3.sh --skia_rev "${LKGR}"

echo "Synced client ${CLIENT_NAME} to ${LKGR}"

# Update README.google.
sed --in-place "s/^Version: .*/Version: ${LKGR}/" README.google
sed --in-place "s/URL: http:\/\/skia.googlesource.com\/skia\/+archive\/.*\.tar\.gz/URL: http:\/\/skia.googlesource.com\/skia\/+archive\/${LKGR}.tar.gz/" README.google
CURRENT_DATE=`date '+%d %B %Y'`
echo "Updated using sync_google3.sh on $CURRENT_DATE by $USER@google.com" >> README.google

# Add README.google to the default change.
g4 reopen
# Create a new CL.
CHANGE="$(g4 change --desc "Update skia HEAD to ${LKGR}.")"
CL="$(echo "${CHANGE}" | sed "s/Change \([0-9]\+\) created.*/\1/")"

echo "Created CL ${CL} (http://cl/${CL})"

# Run presubmit (will run TAP tests).
if g4 presubmit -c "${CL}"; then
  echo "CL is ready for review and submit at http://cl/${CL}"
else
  echo "Presubmit failed for CL ${CL} in client ${CLIENT_NAME}" 1>&2
  exit 3
fi