#!/usr/bin/env bash

# Copyright 2010 The Go Authors.  All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.

# This is a small script for executing go binaries on the android platform.
#
# example:
# ./a 5.out foo bar baz
#
# The script exports the local values of GOARCH, GOTRACEBACK and GOGC
# to the android environment.
#
# Known issues:
# The script fails unless the last character output by the program is "\n"
#
# TODO(kaib): add gdb bridge support

exp ()
{
	if [ ${!1} ]; then
		echo "export $1=\"${!1}\"; "
	fi
}

# adb does not correctly return the exit value of the executed program. use this
# wrapper to manually extract the exit value
rloc=/data/local/tmp/retval
rsize=$(adb shell "ls -l $rloc"|tr -s ' '|cut -d' ' -f4)
rcheck=38
if [ $rsize != $rcheck ] ; then
#	echo "debug: retval size incorrect want $rcheck, got $rsize. uploading"
	echo  >/tmp/adb.retval '#!/system/bin/sh
"$@"
echo RETVAL: $?' 
	adb push /tmp/adb.retval $rloc >/dev/null 2>&1
	adb shell chmod 755 $rloc
fi

# run the main binary
if [ "$*" != "$1" ]; then
	args=$(echo $*| cut -d' ' -f2-)
fi
adb push $1 /data/local/tmp/$1 >/dev/null 2>&1
adb shell "$(exp GOARCH) $(exp GOTRACEBACK) $(exp GOGC) \
	/data/local/tmp/retval /data/local/tmp/$1 $args" \
	2>&1|tr -d '\r' |tee /tmp/adb.out|grep -v RETVAL
exit $(grep RETVAL /tmp/adb.out|tr -d '\n\r'| cut -d' ' -f2)
