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