|
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 |
7 | 5 |
|
8 | | -ROOT="$(cd "$(dirname "$0")/.." && pwd)" |
| 6 | +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)" |
| 7 | +ROOT="$(cd -- "$SCRIPT_DIR/.." && pwd -P)" |
9 | 8 |
|
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 |
12 | 21 |
|
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 |
15 | 24 | exit 1 |
16 | 25 | fi |
17 | 26 |
|
18 | | -echo "[*] JAVA_HOME=$JAVA_HOME" |
| 27 | +export JAVA_HOME |
19 | 28 | export PATH="$JAVA_HOME/bin:$PATH" |
20 | | - |
21 | | -# The main compile script is Linux/macOS compatible (: classpath separator) |
| 29 | +echo "[*] JAVA_HOME=$JAVA_HOME" |
22 | 30 | exec bash "$ROOT/scripts/compile-all-modules.sh" "$@" |
0 commit comments