39 lines
1.1 KiB
Bash
Executable File
39 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env sh
|
|
set -eu
|
|
|
|
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
|
|
APP_HOME=$(dirname -- "$SCRIPT_DIR")
|
|
|
|
JAR_PATH=""
|
|
for candidate in "$APP_HOME"/target/workutils-*.jar; do
|
|
if [ -f "$candidate" ] && [ "${candidate%-plain.jar}" = "$candidate" ]; then
|
|
JAR_PATH=$candidate
|
|
break
|
|
fi
|
|
done
|
|
|
|
if [ -z "$JAR_PATH" ]; then
|
|
echo "[ERROR] WorkUtils JAR not found under $APP_HOME/target" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if ! command -v java >/dev/null 2>&1; then
|
|
echo "[ERROR] Java is not available. WorkUtils requires Java 17+." >&2
|
|
exit 1
|
|
fi
|
|
|
|
JAVA_VERSION=$(java -version 2>&1 | awk -F '"' '/version/ { print $2; exit }')
|
|
JAVA_MAJOR=$(printf '%s\n' "$JAVA_VERSION" | awk -F. '{ if ($1 == 1) print $2; else print $1 }')
|
|
case "$JAVA_MAJOR" in
|
|
''|*[!0-9]*)
|
|
echo "[ERROR] Unable to determine Java version: $JAVA_VERSION" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
if [ "$JAVA_MAJOR" -lt 17 ]; then
|
|
echo "[ERROR] Java $JAVA_VERSION found. WorkUtils requires Java 17+." >&2
|
|
exit 1
|
|
fi
|
|
|
|
exec java -Dfile.encoding=UTF-8 "-Dworkutils.home=$APP_HOME" -jar "$JAR_PATH" "$@"
|