benjaminwagner | 787ca87 | 2015-08-17 12:58:10 -0700 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | # Copyright 2014 Google Inc. |
| 3 | # |
| 4 | # Use of this source code is governed by a BSD-style license that can be |
| 5 | # found in the LICENSE file. |
| 6 | |
benjaminwagner | 0ff46c0 | 2015-12-11 11:26:44 -0800 | [diff] [blame^] | 7 | # Syncs //depot/google3/third_party/skia/HEAD to the latest revision of Skia. |
| 8 | # If this script is not run from a Piper client, creates a new CitC client. Also |
| 9 | # updates README.google. |
benjaminwagner | 787ca87 | 2015-08-17 12:58:10 -0700 | [diff] [blame] | 10 | # |
| 11 | # Usage: |
| 12 | # ./tools/sync_google3.sh |
| 13 | |
benjaminwagner | 964eeba | 2015-10-20 13:00:48 -0700 | [diff] [blame] | 14 | prodcertstatus -q || (echo "Please run prodaccess." 1>&2; exit 1) |
| 15 | source gbash.sh || exit 2 |
benjaminwagner | 787ca87 | 2015-08-17 12:58:10 -0700 | [diff] [blame] | 16 | |
benjaminwagner | 964eeba | 2015-10-20 13:00:48 -0700 | [diff] [blame] | 17 | set -e |
benjaminwagner | 787ca87 | 2015-08-17 12:58:10 -0700 | [diff] [blame] | 18 | |
| 19 | MY_DIR="$(gbash::get_absolute_caller_dir)" |
benjaminwagner | 0ff46c0 | 2015-12-11 11:26:44 -0800 | [diff] [blame^] | 20 | SKIA_REV="$(git ls-remote https://skia.googlesource.com/skia refs/heads/master | cut -f 1)" |
benjaminwagner | 787ca87 | 2015-08-17 12:58:10 -0700 | [diff] [blame] | 21 | |
| 22 | gbash::get_google3_dir && GOOGLE3="$(gbash::get_google3_dir)" |
| 23 | if [ -z "${GOOGLE3}" ]; then |
| 24 | CLIENT_NAME="sync_skia_$(date '+%F-%H-%M-%S')" |
| 25 | ${MY_DIR}/create_skia_google3_client.sh "${CLIENT_NAME}" |
| 26 | GOOGLE3="/google/src/cloud/${USER}/${CLIENT_NAME}/google3" |
| 27 | fi |
| 28 | cd "${GOOGLE3}/third_party/skia/HEAD" |
benjaminwagner | 0ff46c0 | 2015-12-11 11:26:44 -0800 | [diff] [blame^] | 29 | ${MY_DIR}/git_clone_to_google3.sh --skia_rev "${SKIA_REV}" |
benjaminwagner | 787ca87 | 2015-08-17 12:58:10 -0700 | [diff] [blame] | 30 | |
benjaminwagner | 0ff46c0 | 2015-12-11 11:26:44 -0800 | [diff] [blame^] | 31 | echo "Synced client ${CLIENT_NAME} to ${SKIA_REV}" |
benjaminwagner | 964eeba | 2015-10-20 13:00:48 -0700 | [diff] [blame] | 32 | |
benjaminwagner | 787ca87 | 2015-08-17 12:58:10 -0700 | [diff] [blame] | 33 | # Update README.google. |
benjaminwagner | 0ff46c0 | 2015-12-11 11:26:44 -0800 | [diff] [blame^] | 34 | sed --in-place "s/^Version: .*/Version: ${SKIA_REV}/" README.google |
| 35 | sed --in-place "s/URL: http:\/\/skia.googlesource.com\/skia\/+archive\/.*\.tar\.gz/URL: http:\/\/skia.googlesource.com\/skia\/+archive\/${SKIA_REV}.tar.gz/" README.google |
benjaminwagner | 787ca87 | 2015-08-17 12:58:10 -0700 | [diff] [blame] | 36 | CURRENT_DATE=`date '+%d %B %Y'` |
| 37 | echo "Updated using sync_google3.sh on $CURRENT_DATE by $USER@google.com" >> README.google |
| 38 | |
| 39 | # Add README.google to the default change. |
| 40 | g4 reopen |
| 41 | # Create a new CL. |
benjaminwagner | 0ff46c0 | 2015-12-11 11:26:44 -0800 | [diff] [blame^] | 42 | CHANGE="$(g4 change --desc "Update skia HEAD to ${SKIA_REV}.")" |
benjaminwagner | 787ca87 | 2015-08-17 12:58:10 -0700 | [diff] [blame] | 43 | CL="$(echo "${CHANGE}" | sed "s/Change \([0-9]\+\) created.*/\1/")" |
| 44 | |
benjaminwagner | 964eeba | 2015-10-20 13:00:48 -0700 | [diff] [blame] | 45 | echo "Created CL ${CL} (http://cl/${CL})" |
| 46 | |
| 47 | # Run presubmit (will run TAP tests). |
| 48 | if g4 presubmit -c "${CL}"; then |
| 49 | echo "CL is ready for review and submit at http://cl/${CL}" |
| 50 | else |
| 51 | echo "Presubmit failed for CL ${CL} in client ${CLIENT_NAME}" 1>&2 |
| 52 | exit 3 |
| 53 | fi |