Add portable shell launcher
This commit is contained in:
Executable
+38
@@ -0,0 +1,38 @@
|
||||
#!/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" "$@"
|
||||
Reference in New Issue
Block a user