|
1 | 1 | #!/usr/bin/env bash |
2 | 2 | # build.sh — Compiles and packages the NWE Module Installer standalone JAR |
3 | 3 | # Usage: bash standalone/build.sh |
4 | | - |
5 | 4 | set -euo pipefail |
6 | 5 |
|
7 | | -DIR="$(cd "$(dirname "$0")" && pwd)" |
| 6 | +DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" |
| 7 | +SOURCE="$DIR/NWEModuleInstaller.java" |
8 | 8 | OUT="$DIR/out" |
9 | 9 | JAR="$DIR/nwe-module-installer.jar" |
10 | 10 |
|
11 | | -echo "=== Building NWE Module Installer (standalone) ===" |
| 11 | +command -v javac >/dev/null 2>&1 || { echo "[FAIL] javac is required." >&2; exit 1; } |
| 12 | +command -v jar >/dev/null 2>&1 || { echo "[FAIL] jar is required." >&2; exit 1; } |
| 13 | +[[ -f "$SOURCE" ]] || { echo "[FAIL] Missing source: $SOURCE" >&2; exit 1; } |
| 14 | + |
| 15 | +JAVA_MAJOR="$(javac -version 2>&1 | awk '{print $2}' | cut -d. -f1)" |
| 16 | +[[ "$JAVA_MAJOR" =~ ^[0-9]+$ && "$JAVA_MAJOR" -ge 21 ]] || { |
| 17 | + echo "[FAIL] Java 21+ is required; detected javac $JAVA_MAJOR" >&2 |
| 18 | + exit 1 |
| 19 | +} |
12 | 20 |
|
| 21 | +cleanup() { rm -rf "$OUT"; } |
| 22 | +trap cleanup EXIT |
| 23 | + |
| 24 | +printf '%s\n' "=== Building NWE Module Installer (standalone) ===" |
13 | 25 | mkdir -p "$OUT" |
14 | 26 |
|
15 | 27 | echo "[1/3] Compiling..." |
16 | | -javac -d "$OUT" --release 21 "$DIR/NWEModuleInstaller.java" |
| 28 | +javac -d "$OUT" --release 21 "$SOURCE" |
17 | 29 |
|
18 | 30 | echo "[2/3] Creating manifest..." |
19 | | -echo "Main-Class: NWEModuleInstaller" > "$OUT/MANIFEST.MF" |
| 31 | +printf 'Manifest-Version: 1.0\nMain-Class: NWEModuleInstaller\n' > "$OUT/MANIFEST.MF" |
20 | 32 |
|
21 | 33 | echo "[3/3] Packaging JAR..." |
22 | 34 | jar cfm "$JAR" "$OUT/MANIFEST.MF" -C "$OUT" . |
23 | 35 |
|
24 | | -rm -rf "$OUT" |
25 | | - |
26 | | -echo "" |
27 | | -echo " ✔ Built: $JAR" |
28 | | -echo " Run: java -jar $JAR" |
29 | | -echo "" |
| 36 | +[[ -s "$JAR" ]] || { echo "[FAIL] JAR was not created: $JAR" >&2; exit 1; } |
| 37 | +echo " Built: $JAR" |
| 38 | +echo " Run: java -jar $JAR" |
30 | 39 | echo "=== Done ===" |
0 commit comments