#! /bin/sh
OLD_PWD=`pwd`
CMD_DIR=`dirname $0`

if [ -z "$JAVA_OPTS" ]; then
	JAVA_OPTS="-Xmx2048m"
fi

if [ -z "$COPPER_HOME" ]; then
	COPPER_HOME=$CMD_DIR
fi

# JAVA_HOME が空のとき $JAVA_HOME/bin/java は /bin/java になる。そこに java があると
# 「JAVA_HOME は正しい」と見なされ、同梱 JRE が使われなかった(2026-09-21 に WSL で実測。
# 同梱版の狙いは Java の無い機械で動くことなので、空は「java 無し」として扱う)
if [ -z "$JAVA_HOME" ] || [ ! -f "$JAVA_HOME/bin/java" ]; then
	if [ -f "$CMD_DIR/../extras/redhat/runtime/bin/java" ]; then
		JAVA_HOME=$CMD_DIR/../extras/redhat/runtime
	elif [ -f /var/lib/copper-pdf/extras/redhat/runtime/bin/java ]; then
		JAVA_HOME=/var/lib/copper-pdf/extras/redhat/runtime
	fi
fi

JAVA_CMD=$JAVA_HOME/bin/java

if [ ! -f $JAVA_CMD ]; then
	JAVA_CMD=java
fi

# copper-webapp は同梱の Jetty 12 で動くので Java 17 以降が要る。古い Java だと
# UnsupportedClassVersionError の生のエラーになるので、先に確かめて分かる言葉で止める(2026-09-28)
JAVA_VERSION=`$JAVA_CMD -version 2>&1 | sed -n 's/.*version "\([^"]*\)".*/\1/p' | head -1`
case "$JAVA_VERSION" in
	1.*) JAVA_MAJOR=`echo "$JAVA_VERSION" | cut -d. -f2` ;;
	*) JAVA_MAJOR=`echo "$JAVA_VERSION" | cut -d. -f1 | cut -d- -f1` ;;
esac
if [ -n "$JAVA_MAJOR" ] && [ "$JAVA_MAJOR" -lt 17 ] 2>/dev/null; then
	echo "copper-webapp には Java 17 以降が必要です(現在 $JAVA_VERSION)。" >&2
	echo "copper-webapp requires Java 17 or later (current: $JAVA_VERSION)." >&2
	echo "copperd と copper コマンドは Java 8 以降で動きます。" >&2
	exit 1
fi

if [ ! -d $COPPER_HOME/conf/profiles ]; then
	COPPER_HOME=/var/lib/copper-pdf
fi

COPPER_PROP=$HOME/.copper/default.properties
COPPER_CONFIG=$COPPER_HOME/conf

COPPER_SHARE=$COPPER_HOME
if [ ! -d $COPPER_SHARE/lib ]; then
	COPPER_SHARE=/usr/share/copper-pdf
fi

if [ ! -f $COPPER_PROP ]; then
	if [ ! -d $HOME/.copper ]; then
		mkdir $HOME/.copper
	fi
	cp -r $COPPER_HOME/conf/profiles/* $HOME/.copper/
fi

JETTY_HOME=$COPPER_HOME/jetty

JAVA_ARGS="\
	$JAVA_OPTS \
	-Djava.net.preferIPv4Stack=true \
	-Djetty.base=$JETTY_HOME \
	-Djetty.home=$JETTY_HOME \
	-Djp.cssj.plugin.lib=$COPPER_SHARE/plugins \
	-Djp.cssj.driver.default=$COPPER_PROP \
	-Djp.cssj.copper.config=$COPPER_CONFIG \
	-Djp.cssj.webapp.config=$HOME/.copper/webapp.properties \
"

( cd $COPPER_HOME; $JAVA_CMD $JAVA_ARGS \
	-jar $JETTY_HOME/start.jar $* )

