xref: /aosp_15_r20/external/libvpx/update_libvpx.sh (revision fb1b10ab9aebc7c7068eedab379b749d7e3900be)
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