#!/bin/bash set -e -o pipefail usage () { printf "usage: %s [-u ] [-r ] [ ...]\n" "$0" >&2 } err () { printf "error: %s\n" "$1" >&2 exit 1 } remote=origin ref=origin/master dopull=true while getopts "hnr:u:" o; do case "$o" in h) usage; exit 0 ;; n) dopull=false ;; r) ref="$OPTARG" ;; u) remote="$OPTARG" ;; esac done shift $(($OPTIND-1)) if ! which git >/dev/null; then printf "error: please install git\n">&2 exit 1; fi if ! which wget >/dev/null; then printf "error: please install wget\n">&2 exit 1; fi now=$(date -u +%Y%m%dT%H%M%SZ) git clean -fdx || err "failed" git reset --hard "$ref" \ || err "reset failed" $dopull && (git pull "$remote" || err "failed to pull") for patch in "$@"; do wget -O - "$patch" | git am done printf '# Building FreeSWITCH %s\n' "$(git describe HEAD)" \ > ${now}-fsbuild.log (./bootstrap.sh && ./configure -C && make VERBOSE=1) 2>&1 \ | tee -a ${now}-fsbuild.log