KORAPXMLTOOL_XMX_MB -> KORAPXMLTOOL_XMX
Change-Id: I4a5228d9c6025dc178267987828b358b682c9002
diff --git a/korapxmltool.shebang b/korapxmltool.shebang
index 6f8befc..a6d561d 100644
--- a/korapxmltool.shebang
+++ b/korapxmltool.shebang
@@ -6,7 +6,8 @@
# (Run `zip -A korapxmltool` if your unzip/java complains about prepended bytes.)
#
# Override memory:
-# export KORAPXMLTOOL_XMX_MB=8192 # sets -Xmx8192m
+# export KORAPXMLTOOL_XMX=20g # sets -Xmx20g
+# export KORAPXMLTOOL_XMX=8192m # sets -Xmx8192m
# export KORAPXMLTOOL_JAVA_OPTS="... -Xmx4g" # full custom opts
# Otherwise we pick ~75% of detected memory (cgroup aware), clamped to [1024m, 65536m].
@@ -54,9 +55,26 @@
fi
if ! $has_xmx; then
- if [[ -n ${KORAPXMLTOOL_XMX_MB:-} && ${KORAPXMLTOOL_XMX_MB:-} =~ ^[0-9]+$ ]]; then
- xmx_mb=${KORAPXMLTOOL_XMX_MB}
- else
+ if [[ -n ${KORAPXMLTOOL_XMX:-} ]]; then
+ # Handle KORAPXMLTOOL_XMX with units (g/G for GB, m/M for MB, or just number for MB)
+ if [[ ${KORAPXMLTOOL_XMX} =~ ^[0-9]+[gG]$ ]]; then
+ # Convert GB to MB
+ xmx_gb=${KORAPXMLTOOL_XMX%[gG]}
+ xmx_mb=$((xmx_gb * 1024))
+ elif [[ ${KORAPXMLTOOL_XMX} =~ ^[0-9]+[mM]$ ]]; then
+ # Extract MB value
+ xmx_mb=${KORAPXMLTOOL_XMX%[mM]}
+ elif [[ ${KORAPXMLTOOL_XMX} =~ ^[0-9]+$ ]]; then
+ # Treat plain number as MB for backward compatibility
+ xmx_mb=${KORAPXMLTOOL_XMX}
+ else
+ echo "Warning: Invalid KORAPXMLTOOL_XMX format '${KORAPXMLTOOL_XMX}'. Use formats like '20g', '8192m', or '8192'." >&2
+ xmx_mb=""
+ fi
+ fi
+
+ # If no valid XMX was provided or parsing failed, use auto-detection
+ if [[ -z ${xmx_mb:-} ]]; then
mem_mb=$(detect_mem_limit_mb)
xmx_mb=$(( mem_mb * 75 / 100 ))
(( xmx_mb < 1024 )) && xmx_mb=1024