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