Files
ERP/distribution/bin/erp-run
T

53 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"
INSTALL_ROOT="${ERP_INSTALL_ROOT:-$(cd "$SCRIPT_DIR/../.." && pwd -P)}"
CONFIG_FILE="${ERP_CONFIG_FILE:-$INSTALL_ROOT/config/erp.env}"
if [[ ! -r "$CONFIG_FILE" ]]; then
printf '[ERP] configuration not readable: %s\n' "$CONFIG_FILE" >&2
exit 1
fi
set -a
# The installer creates this file with shell-escaped values and mode 0640.
# shellcheck disable=SC1090
source "$CONFIG_FILE"
set +a
RUN_DIR="${ERP_RUN_DIR:-$INSTALL_ROOT/run}"
JAR_PATH="${ERP_JAR_PATH:-$INSTALL_ROOT/current/app/kaidi-erp.jar}"
JAVA_BIN="${ERP_JAVA_BIN:-}"
if [[ -z "$JAVA_BIN" ]]; then
if [[ -n "${JAVA_HOME:-}" && -x "$JAVA_HOME/bin/java" ]]; then
JAVA_BIN="$JAVA_HOME/bin/java"
else
JAVA_BIN="$(command -v java || true)"
fi
fi
if [[ -z "$JAVA_BIN" || ! -x "$JAVA_BIN" ]]; then
printf '[ERP] Java 17+ is not installed\n' >&2
exit 1
fi
JAVA_MAJOR="$("$JAVA_BIN" -version 2>&1 | awk -F'[".]' '/version/ {print $2; exit}')"
if [[ ! "$JAVA_MAJOR" =~ ^[0-9]+$ || "$JAVA_MAJOR" -lt 17 ]]; then
printf '[ERP] Java 17+ is required\n' >&2
exit 1
fi
if [[ ! -r "$JAR_PATH" ]]; then
printf '[ERP] application jar not readable: %s\n' "$JAR_PATH" >&2
exit 1
fi
mkdir -p "$RUN_DIR"
printf '%s\n' "$$" > "$RUN_DIR/app.pid"
IFS=$' \t' read -r -a JAVA_OPTS <<< "${ERP_JAVA_OPTS:--Xms512m -Xmx2g}"
exec "$JAVA_BIN" "${JAVA_OPTS[@]}" \
-jar "$JAR_PATH" \
--spring.profiles.active=postgres \
--server.port="${SERVER_PORT:-8091}"