#!/bin/bash

source "$(dirname "$0")/shared.sh" || exit 1

REPO="https://github.com/jclehner/rxdroid.git"
TMP=$(mktempd)
BIN="build/apk/RxDroid-release-unsigned.apk"
RXDROID_KEYSTORE="${RXDROID_KEYSTORE:-/___IDONTEXIST__}"
RXDROID_KEY_ALIAS="${RXDROID_KEY_ALIAS:-}"
RXDROID_APK_OUT="${RXDROID_APK_OUT:-${HOME}/RxDroid-release.apk}"

RET=1

cleanup() {
	rm -rf "$TMP"
	exit $RET
}

checkout() {
	cd "$TMP"
	run git clone --depth 1 "$REPO" .

	local tag="${1:-}"

	if [[ ! -z "${tag}" ]]; then
		git checkout "${tag}"
	fi

#	run unzip thirdparty.zip
}

signapk() {
	jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 \
			-keystore "$RXDROID_KEYSTORE" "$BIN" "$RXDROID_KEY_ALIAS"
}


build() {
	run android update project -p .

	#run android update project -p thirdparty/NumberPicker
	#run android update project -p thirdparty/DragSortListView
	#run android update project -p thirdparty/ActionBarSherlock
	#run ant release

	run gradle assembleRelease

	cp "${BIN}" "${RXDROID_APK_OUT}"

	echo "======================================================"
	echo "APK is available at ${RXDROID_APK_OUT}"
	echo "======================================================"
}

trap cleanup EXIT INT TERM

ARG=

if [[ $# -eq 2 ]]; then
	ARG="$1"
	shift
fi

if [[ $# -eq 1 ]]; then
	if [[ $1 != "." ]]; then
		checkout "$1"
		if [[ "$ARG" == "--beta" ]]; then
			run ised 's/BETA_BUILD = false/BETA_BUILD = true/g' src/main/java/at/jclehner/rxdroid/Version.java
		else
			run ised 's/BETA_BUILD = true/BETA_BUILD = false/g' src/main/java/at/jclehner/rxdroid/Version.java
		fi
	fi
else
	echo >&2 "usage: build-for-release [ARG] [PATH]"
	echo >&2
	echo >&2 "ARG :"
	echo >&2 "  --beta  Build beta release"
	echo >&2 "PATH: relative to $REPO; use ."
	echo >&2 "      to build using the current directory"
	exit 1
fi

build
RET=0

