#!/bin/sh
# 2016, 2020 (c) Etersoft www.etersoft.ru
# Author: Vitaly Lipatov <lav@etersoft.ru>
# Public domain

# TODO: hasher per program
# TODO: run by desktop file from installed package
# TODO: run the same binary like in host system with autodetected package

# load common functions, compatible with local and installed script
. `dirname $0`/../share/eterbuild/functions/common


if [ "$1" = "-h" ] || [ "$1" = "--help" ] ; then
	echo "runinhsh [-b REPONAME] [package/command] [command] - run command inside hasher for REPONAME distro"
	echo "Examples:"
	echo "  $ runinhsh -b p8 firefox-gost firefox"
	echo "  $ runinhsh -b p8 chromium"
	exit 0
fi

PLATFORM=''

# firefox plugin hack
PLUGINJAVA=mozilla-plugin-java-1.8.0-openjdk
# mozilla-plugin-java-1.7.0-openjdk
if [ "$1" = "-b" ] ; then
	PLATFORM="-b $2"
	case "$2" in
		p6|p7)
			PLUGINJAVA=mozilla-plugin-java-1.6.0-sun
			;;
		*)
			# use default
			;;
	esac
	shift 2
fi

# TODO --short
#PACKAGE=$(epmqf --quiet --short "$1")
if [ -n "$2" ] ; then
	PACKAGE="$1"
	COMMAND="$2"
else
	COMMAND="$1"
	PACKAGE=$($EPMCMD qf --quiet "$COMMAND" 2>/dev/null)
	if [ -n "$PACKAGE" ] ; then
		PACKAGE=$(echo "$PACKAGE" | $EPMCMD print name for package)
	else
		PACKAGE="$COMMAND"
	fi
fi

PACKAGES="$PACKAGE"
OPTIONS=
case $PACKAGE in
	firefox*)
		PACKAGES="$PACKAGES $PLUGINJAVA"
		#OPTIONS="$OPTIONS --no-remote"
		;;
#	"")
#		echo "Can't find package for '$COMMAND'" >&2
#		exit -1
#		;;
	*)
		PACKAGES="$PACKAGES dbus"
esac

HASHERNAME=$(echo "$COMMAND $PACKAGES" | md5sum | cut -f1 -d" ")

showcmd "$ETERBUILDBIN/loginhsh -Y -t -p $HASHERNAME $PLATFORM -r '$COMMAND $OPTIONS' $PACKAGES"
$ETERBUILDBIN/loginhsh -Y -t -p $HASHERNAME $PLATFORM -r "$COMMAND $OPTIONS" $PACKAGES
