#!/bin/sh
# Launch SliTaz default X Terminal.
#

. /etc/slitaz/applications.conf
. /lib/libtaz.sh
export TEXTDOMAIN='slitaz-tools' #i18n

help() {
	cat << EOT
$(boldify terminal): $(_n 'configurable SliTaz wrapper for terminal.')

$(boldify $(_n 'Recognized options:'))
-v -version  --version        $(_n 'Print the version number')
   -help     --help           $(_n 'Print out this message')
   -geometry --geometry       $(_n 'Width and height of terminal window (%s)' "$GEOMETRY")
-t -title -T --title          $(_n 'Title name for window ("%s")' "$TITLE")
-h -hold                      $(_n "Don't close terminal after command finished")
-e           --xterm-execute  $(_n 'Command to execute (must be last in line)')


$(boldify $(_n 'Help for %s:' "$TERMINAL"))

EOT
	$TERMINAL $OPT_HELP
}


USER_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/slitaz/applications.conf"
[ -f  $USER_CONFIG ] && . $USER_CONFIG

PARAMS=''; GEOMETRY='80x24'; TITLE="SliTaz $(cat /etc/slitaz-release)"

case $TERMINAL in
	sakura)
		(grep -q 'Unloading fbdev' /var/log/Xorg.0.log) || TERMINAL="sakura -l"
		# sakura 3.x has no --geometry, title nor hold option: size is
		# -c <columns> -r <rows>, the rest is left out.
		OPT_TITLE=''; OPT_GEOM='-c -r'; OPT_HELP='-?'; OPT_HOLD='';;
	xterm|*)
		OPT_TITLE='-T'; OPT_GEOM='-geometry'; OPT_HELP='-help'; OPT_HOLD='-hold';;
esac

until [ $# -eq 0 ]; do
	PARAM="$1"
	case "$PARAM" in
		-version|--version|-v)	$TERMINAL -v; exit 0;;
		-help|--help)			help; exit 0;;
		-h|-hold)				shift; PARAMS="$PARAMS $OPT_HOLD";;
		-geometry|--geometry)	shift; GEOMETRY="$1"; shift;;
		-t|-title|-T|--title)	shift; TITLE="$1"; shift;;
		-e|--xterm-execute)		shift; COMMAND="-e $@"; break;;
		*)						shift; PARAMS="$PARAMS $PARAM";;
	esac
done

case "$OPT_GEOM" in
	'-c -r') GEOM_ARGS="-c ${GEOMETRY%x*} -r ${GEOMETRY#*x}" ;;
	*)       GEOM_ARGS="$OPT_GEOM $GEOMETRY" ;;
esac

if [ -n "$OPT_TITLE" ]; then
	$TERMINAL $PARAMS $GEOM_ARGS $OPT_TITLE "$TITLE" $COMMAND &
else
	$TERMINAL $PARAMS $GEOM_ARGS $COMMAND &
fi

exit 0
