Skip to content

Commit b697a90

Browse files
committed
Harden macOS JAR build wrapper
1 parent 3eada7a commit b697a90

1 file changed

Lines changed: 22 additions & 14 deletions

File tree

scripts/build-jar-macos.sh

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,32 @@
1-
#!/bin/bash
2-
# ═══════════════════════════════════════════════════════════════════════════════
3-
# NitroWebExpress™ — Build Fat JAR (macOS)
4-
# Wrapper around build-jar.sh that handles macOS specifics.
5-
# Usage: bash scripts/build-jar-macos.sh
6-
# ═══════════════════════════════════════════════════════════════════════════════
1+
#!/usr/bin/env bash
2+
# NitroWebExpress — Build Fat JAR (macOS)
3+
# Location-independent wrapper around build-jar.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

27+
export JAVA_HOME
1828
export PATH="$JAVA_HOME/bin:$PATH"
19-
20-
# macOS mktemp needs a template with X's
2129
export TMPDIR="${TMPDIR:-/tmp}"
2230

23-
# The main build script is Linux/macOS compatible
31+
echo "[*] JAVA_HOME=$JAVA_HOME"
2432
exec bash "$ROOT/scripts/build-jar.sh" "$@"

0 commit comments

Comments
 (0)