Skip to content

Commit 3eada7a

Browse files
committed
Harden macOS module compiler wrapper
1 parent a0adf05 commit 3eada7a

1 file changed

Lines changed: 22 additions & 14 deletions

File tree

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,30 @@
1-
#!/bin/bash
2-
# ═══════════════════════════════════════════════════════════════════════════════
3-
# NitroWebExpress™ — Compile All Modules (macOS)
4-
# Wrapper around compile-all-modules.sh that sets JAVA_HOME for macOS.
5-
# Usage: bash scripts/compile-all-modules-macos.sh
6-
# ═══════════════════════════════════════════════════════════════════════════════
1+
#!/usr/bin/env bash
2+
# NitroWebExpress — Compile All Modules (macOS)
3+
# Location-independent wrapper around compile-all-modules.sh.
4+
set -euo pipefail
75

8-
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
6+
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)"
7+
ROOT="$(cd -- "$SCRIPT_DIR/.." && pwd -P)"
98

10-
# Set JAVA_HOME for macOS
11-
export JAVA_HOME="${JAVA_HOME:-$(/usr/libexec/java_home -v 21 2>/dev/null || echo /opt/homebrew/opt/openjdk@21/libexec/openjdk.jdk/Contents/Home)}"
9+
if [[ -z "${JAVA_HOME:-}" ]]; then
10+
if command -v /usr/libexec/java_home >/dev/null 2>&1; then
11+
JAVA_HOME="$(/usr/libexec/java_home -v 21 2>/dev/null || true)"
12+
fi
13+
fi
14+
if [[ -z "${JAVA_HOME:-}" || ! -d "$JAVA_HOME" ]]; then
15+
for candidate in \
16+
/opt/homebrew/opt/openjdk@21/libexec/openjdk.jdk/Contents/Home \
17+
/usr/local/opt/openjdk@21/libexec/openjdk.jdk/Contents/Home; do
18+
if [[ -d "$candidate" ]]; then JAVA_HOME="$candidate"; break; fi
19+
done
20+
fi
1221

13-
if [ ! -d "$JAVA_HOME" ]; then
14-
echo "[FAIL] Java 21 not found. Install: brew install openjdk@21"
22+
if [[ -z "${JAVA_HOME:-}" || ! -x "$JAVA_HOME/bin/javac" ]]; then
23+
echo "[FAIL] Java 21 not found. Install OpenJDK 21 (for example: brew install openjdk@21)." >&2
1524
exit 1
1625
fi
1726

18-
echo "[*] JAVA_HOME=$JAVA_HOME"
27+
export JAVA_HOME
1928
export PATH="$JAVA_HOME/bin:$PATH"
20-
21-
# The main compile script is Linux/macOS compatible (: classpath separator)
29+
echo "[*] JAVA_HOME=$JAVA_HOME"
2230
exec bash "$ROOT/scripts/compile-all-modules.sh" "$@"

0 commit comments

Comments
 (0)