1*103e46e4SHarish Mahendrakar#!/bin/sh 2*103e46e4SHarish Mahendrakar## 3*103e46e4SHarish Mahendrakar## Copyright (c) 2015 The WebM project authors. All Rights Reserved. 4*103e46e4SHarish Mahendrakar## 5*103e46e4SHarish Mahendrakar## Use of this source code is governed by a BSD-style license 6*103e46e4SHarish Mahendrakar## that can be found in the LICENSE file in the root of the source 7*103e46e4SHarish Mahendrakar## tree. An additional intellectual property rights grant can be found 8*103e46e4SHarish Mahendrakar## in the file PATENTS. All contributing project authors may 9*103e46e4SHarish Mahendrakar## be found in the AUTHORS file in the root of the source tree. 10*103e46e4SHarish Mahendrakar## 11*103e46e4SHarish Mahendrakarset -e 12*103e46e4SHarish Mahendrakardevnull='> /dev/null 2>&1' 13*103e46e4SHarish Mahendrakar 14*103e46e4SHarish Mahendrakarreadonly ORIG_PWD="$(pwd)" 15*103e46e4SHarish Mahendrakar 16*103e46e4SHarish Mahendrakarelog() { 17*103e46e4SHarish Mahendrakar echo "${0##*/} failed because: $@" 1>&2 18*103e46e4SHarish Mahendrakar} 19*103e46e4SHarish Mahendrakar 20*103e46e4SHarish Mahendrakarvlog() { 21*103e46e4SHarish Mahendrakar if [ "${VERBOSE}" = "yes" ]; then 22*103e46e4SHarish Mahendrakar echo "$@" 23*103e46e4SHarish Mahendrakar fi 24*103e46e4SHarish Mahendrakar} 25*103e46e4SHarish Mahendrakar 26*103e46e4SHarish Mahendrakar# Terminates script when name of current directory does not match $1. 27*103e46e4SHarish Mahendrakarcheck_dir() { 28*103e46e4SHarish Mahendrakar current_dir="$(pwd)" 29*103e46e4SHarish Mahendrakar required_dir="$1" 30*103e46e4SHarish Mahendrakar if [ "${current_dir##*/}" != "${required_dir}" ]; then 31*103e46e4SHarish Mahendrakar elog "This script must be run from the ${required_dir} directory." 32*103e46e4SHarish Mahendrakar exit 1 33*103e46e4SHarish Mahendrakar fi 34*103e46e4SHarish Mahendrakar} 35*103e46e4SHarish Mahendrakar 36*103e46e4SHarish Mahendrakar# Terminates the script when $1 is not in $PATH. Any arguments required for 37*103e46e4SHarish Mahendrakar# the tool being tested to return a successful exit code can be passed as 38*103e46e4SHarish Mahendrakar# additional arguments. 39*103e46e4SHarish Mahendrakarcheck_tool() { 40*103e46e4SHarish Mahendrakar tool="$1" 41*103e46e4SHarish Mahendrakar shift 42*103e46e4SHarish Mahendrakar tool_args="$@" 43*103e46e4SHarish Mahendrakar if ! eval "${tool}" ${tool_args} > /dev/null 2>&1; then 44*103e46e4SHarish Mahendrakar elog "${tool} must be in your path." 45*103e46e4SHarish Mahendrakar exit 1 46*103e46e4SHarish Mahendrakar fi 47*103e46e4SHarish Mahendrakar} 48*103e46e4SHarish Mahendrakar 49*103e46e4SHarish Mahendrakar# Echoes git describe output for the directory specified by $1 to stdout. 50*103e46e4SHarish Mahendrakargit_describe() { 51*103e46e4SHarish Mahendrakar git_dir="$1" 52*103e46e4SHarish Mahendrakar check_git 53*103e46e4SHarish Mahendrakar echo $(git -C "${git_dir}" describe) 54*103e46e4SHarish Mahendrakar} 55*103e46e4SHarish Mahendrakar 56*103e46e4SHarish Mahendrakar# Echoes current git revision for the directory specifed by $1 to stdout. 57*103e46e4SHarish Mahendrakargit_revision() { 58*103e46e4SHarish Mahendrakar git_dir="$1" 59*103e46e4SHarish Mahendrakar check_git 60*103e46e4SHarish Mahendrakar echo $(git -C "${git_dir}" rev-parse HEAD) 61*103e46e4SHarish Mahendrakar} 62*103e46e4SHarish Mahendrakar 63