#!/bin/bash

tmp=tmp-bench-size-$$

if [ `uname` = "Darwin" ] ; then
	# e.g., `        Section __text: 1445477`
	otherawk='$2 ~ "__.?%s:" {tot += $3} END {print tot}'
	size -m "$1" > $tmp
	wposix=
	statflag="-f %z"
else
	x=`which gsize`
	# e.g., `.text                1269331   4207296`
	# Field 2 is size, field 3 is address.
	otherawk='$1 ~ ".%s" {tot += $2} END {print tot}'
	if [ "x$x" = "x" ] ; then
		size -A "$1" > $tmp
	else
		"$x" -A "$1" > $tmp
	fi
	wposix="-Wposix"
	statflag="--format %s"
fi

# $1: size output file
# $2: section name (without leading .)
function find_section() {
	cmd="$(printf "${otherawk}" $2)"
	out=$(awk ${wposix} "${cmd}" < $1)
	if [[ "${out}" == "" ]]; then
		echo 0
	else
		echo ${out}
	fi
}

total=$(stat $statflag "$1")

text=$(find_section "${tmp}" "text")
gopclntab=$(find_section "${tmp}" "gopclntab")
rodata=$(find_section "${tmp}" "rodata")
data=$(find_section "${tmp}" "data")

debug_info=$(find_section "${tmp}" "debug_info")
debug_loc=$(find_section "${tmp}" "debug_loc")
debug_line=$(find_section "${tmp}" "debug_line")
debug_ranges=$(find_section "${tmp}" "debug_ranges")
debug_frame=$(find_section "${tmp}" "debug_frame")
debug_abbrev=$(find_section "${tmp}" "debug_abbrev")
debug_pubname=$(find_section "${tmp}" "debug_pubname")
debug_pubtype=$(find_section "${tmp}" "debug_pubtype")

echo "goos: $GOOS"
echo "goarch: $GOARCH"
echo "pkg:" # Erase any inherited pkg if files are concatenated

if echo $total | egrep -q '[0-9]+' ; then
	echo Unit total-bytes assume=exact
	echo "Benchmark${2}" 1 ${total} total-bytes
fi

if echo $text | egrep -q '[0-9]+' ; then
	echo Unit text-bytes assume=exact
	echo "Benchmark${2}" 1 ${text} text-bytes
fi

if echo $data | egrep -q '[0-9]+' ; then
	echo Unit data-bytes assume=exact
	echo "Benchmark${2}" 1 ${data} data-bytes
fi

if echo $rodata | egrep -q '[0-9]+' ; then
	echo Unit rodata-bytes assume=exact
	echo "Benchmark${2}" 1 ${rodata} rodata-bytes
fi

if echo $gopclntab | egrep -q '[0-9]+' ; then
	echo Unit pclntab-bytes assume=exact
	echo "Benchmark${2}" 1 ${gopclntab} pclntab-bytes
fi

debug=`expr ${debug_info} + ${debug_loc} + ${debug_line} + ${debug_ranges} + ${debug_frame} + ${debug_abbrev} + ${debug_pubname} + ${debug_pubtype}`

if echo $debug | egrep -q '[0-9]+' ; then
	echo Unit debug-bytes assume=exact
	echo "Benchmark${2}" 1 ${debug} debug-bytes
fi

rm $tmp
