1*fb1b10abSAndroid Build Coastguard Worker#!/bin/bash -e 2*fb1b10abSAndroid Build Coastguard Worker# 3*fb1b10abSAndroid Build Coastguard Worker# Copyright (c) 2012 The Chromium Authors. All rights reserved. 4*fb1b10abSAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 5*fb1b10abSAndroid Build Coastguard Worker# found in the LICENSE file. 6*fb1b10abSAndroid Build Coastguard Worker 7*fb1b10abSAndroid Build Coastguard Worker# This tool is used to update libvpx source code to a revision of the upstream 8*fb1b10abSAndroid Build Coastguard Worker# repository. Modified from Chromium src/third_party/libvpx/update_libvpx.sh 9*fb1b10abSAndroid Build Coastguard Worker 10*fb1b10abSAndroid Build Coastguard Worker# Usage: 11*fb1b10abSAndroid Build Coastguard Worker# 12*fb1b10abSAndroid Build Coastguard Worker# $ ./update_libvpx.sh [branch | revision | file or url containing a revision] 13*fb1b10abSAndroid Build Coastguard Worker# When specifying a branch it may be necessary to prefix with origin/ 14*fb1b10abSAndroid Build Coastguard Worker 15*fb1b10abSAndroid Build Coastguard Worker# Tools required for running this tool: 16*fb1b10abSAndroid Build Coastguard Worker# 17*fb1b10abSAndroid Build Coastguard Worker# 1. Linux / Mac 18*fb1b10abSAndroid Build Coastguard Worker# 2. git 19*fb1b10abSAndroid Build Coastguard Worker 20*fb1b10abSAndroid Build Coastguard Workerexport LC_ALL=C 21*fb1b10abSAndroid Build Coastguard Worker 22*fb1b10abSAndroid Build Coastguard Workerdie() { 23*fb1b10abSAndroid Build Coastguard Worker echo "$@" 24*fb1b10abSAndroid Build Coastguard Worker exit 1 25*fb1b10abSAndroid Build Coastguard Worker} 26*fb1b10abSAndroid Build Coastguard Worker 27*fb1b10abSAndroid Build Coastguard Worker# Location for the remote git repository. 28*fb1b10abSAndroid Build Coastguard WorkerGIT_REPO="https://chromium.googlesource.com/webm/libvpx" 29*fb1b10abSAndroid Build Coastguard Worker 30*fb1b10abSAndroid Build Coastguard Worker# Update to TOT by default. 31*fb1b10abSAndroid Build Coastguard WorkerGIT_BRANCH="main" 32*fb1b10abSAndroid Build Coastguard Worker 33*fb1b10abSAndroid Build Coastguard WorkerBASE_DIR=`pwd` 34*fb1b10abSAndroid Build Coastguard Worker 35*fb1b10abSAndroid Build Coastguard Workerif [ -n "$1" ]; then 36*fb1b10abSAndroid Build Coastguard Worker GIT_BRANCH="$1" 37*fb1b10abSAndroid Build Coastguard Worker if [ -f "$1" ]; then 38*fb1b10abSAndroid Build Coastguard Worker GIT_BRANCH=$(<"$1") 39*fb1b10abSAndroid Build Coastguard Worker elif [[ $1 = http* ]]; then 40*fb1b10abSAndroid Build Coastguard Worker GIT_BRANCH=`curl $1` 41*fb1b10abSAndroid Build Coastguard Worker fi 42*fb1b10abSAndroid Build Coastguard Workerfi 43*fb1b10abSAndroid Build Coastguard Worker 44*fb1b10abSAndroid Build Coastguard Workerprev_hash="$(egrep "^Commit: [[:alnum:]]" README.android | awk '{ print $2 }')" 45*fb1b10abSAndroid Build Coastguard Workerecho "prev_hash:$prev_hash" 46*fb1b10abSAndroid Build Coastguard Worker 47*fb1b10abSAndroid Build Coastguard WorkerREMOTE="update_upstream" 48*fb1b10abSAndroid Build Coastguard Worker 49*fb1b10abSAndroid Build Coastguard Worker# Add a remote for upstream git repository 50*fb1b10abSAndroid Build Coastguard Workergit remote add $REMOTE $GIT_REPO 51*fb1b10abSAndroid Build Coastguard Worker 52*fb1b10abSAndroid Build Coastguard Worker# Fetch remote's GIT_BRANCH 53*fb1b10abSAndroid Build Coastguard Workergit fetch $REMOTE $GIT_BRANCH --tags 54*fb1b10abSAndroid Build Coastguard Worker 55*fb1b10abSAndroid Build Coastguard Worker# Get commit id corresponding to branch/revision in upstream repository 56*fb1b10abSAndroid Build Coastguard WorkerREMOTE_BRANCHES="$(git remote show $REMOTE)" 57*fb1b10abSAndroid Build Coastguard Worker 58*fb1b10abSAndroid Build Coastguard Workerif [[ "$REMOTE_BRANCHES" == *"$GIT_BRANCH"* ]]; then 59*fb1b10abSAndroid Build Coastguard Worker UPSTREAM_COMMIT=$(git rev-list -n 1 $REMOTE/$GIT_BRANCH) 60*fb1b10abSAndroid Build Coastguard Workerelse 61*fb1b10abSAndroid Build Coastguard Worker UPSTREAM_COMMIT=$(git rev-list -n 1 $GIT_BRANCH) 62*fb1b10abSAndroid Build Coastguard Workerfi 63*fb1b10abSAndroid Build Coastguard Worker 64*fb1b10abSAndroid Build Coastguard Worker[ -z "$UPSTREAM_COMMIT" ] \ 65*fb1b10abSAndroid Build Coastguard Worker && die "Unable to get upstream commit corresponding to ${GIT_BRANCH}"; 66*fb1b10abSAndroid Build Coastguard Worker 67*fb1b10abSAndroid Build Coastguard Workergit merge $UPSTREAM_COMMIT 68*fb1b10abSAndroid Build Coastguard Worker 69*fb1b10abSAndroid Build Coastguard Worker# Get the current commit hash. 70*fb1b10abSAndroid Build Coastguard Workerhash=$(git log $UPSTREAM_COMMIT -1 --format="%H") 71*fb1b10abSAndroid Build Coastguard Worker 72*fb1b10abSAndroid Build Coastguard Worker# README reminder. 73*fb1b10abSAndroid Build Coastguard Workerecho "Update README.android:" 74*fb1b10abSAndroid Build Coastguard Workerecho "===============" 75*fb1b10abSAndroid Build Coastguard Workerecho "Date: $(date +"%A %B %d %Y")" 76*fb1b10abSAndroid Build Coastguard Workerecho "Branch: $GIT_BRANCH" 77*fb1b10abSAndroid Build Coastguard Workerecho "Commit: $hash" 78*fb1b10abSAndroid Build Coastguard Workerecho "===============" 79*fb1b10abSAndroid Build Coastguard Workerecho "" 80*fb1b10abSAndroid Build Coastguard Worker 81*fb1b10abSAndroid Build Coastguard Worker# Remove the remote added earlier 82*fb1b10abSAndroid Build Coastguard Workergit remote remove $REMOTE 83*fb1b10abSAndroid Build Coastguard Worker 84*fb1b10abSAndroid Build Coastguard Workercd $BASE_DIR 85