#!/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" "$@"