diff --git a/build/build_patch.sh b/build/build_patch.sh new file mode 100755 index 0000000000..fc91b00e2f --- /dev/null +++ b/build/build_patch.sh @@ -0,0 +1,44 @@ +#!/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