Second pass
Build and Test j3270 / Build JAR & Run Tests (push) Successful in 5m57s

This commit is contained in:
2026-08-20 18:37:22 -04:00
parent a1b1273022
commit cc2ee5d2d9
9 changed files with 143 additions and 52 deletions
+18 -31
View File
@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/sh
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
@@ -18,15 +18,12 @@ elif command -v javac >/dev/null 2>&1 && command -v jar >/dev/null 2>&1; then
JAR_BIN="$(command -v jar)"
else
# Check common SDKMAN / macOS / Linux JDK locations
POSSIBLE_HOMES=(
"$HOME/.sdkman/candidates/java/current"
"/Library/Java/JavaVirtualMachines"/*/Contents/Home
"/usr/lib/jvm/default-java"
"/usr/lib/jvm/java-21-openjdk"*
"/usr/lib/jvm/java-17-openjdk"*
"/usr/lib/jvm/java-11-openjdk"*
)
for h in "${POSSIBLE_HOMES[@]}"; do
for h in "$HOME/.sdkman/candidates/java/current" \
/usr/lib/jvm/java-21-openjdk* \
/usr/lib/jvm/java-17-openjdk* \
/usr/lib/jvm/java-11-openjdk* \
/usr/lib/jvm/default-java \
/Library/Java/JavaVirtualMachines/*/Contents/Home; do
if [ -d "$h" ] && [ -x "$h/bin/javac" ] && [ -x "$h/bin/jar" ]; then
export JAVA_HOME="$h"
JAVAC_BIN="$JAVA_HOME/bin/javac"
@@ -51,29 +48,24 @@ mkdir -p "$BUILD_DIR/lib3270j" "$BUILD_DIR/j3270"
# 2. Compile lib3270j
echo "Compiling lib3270j..."
LIB_SOURCES=()
while IFS= read -r -d '' file; do
LIB_SOURCES+=("$file")
done < <(find "$SCRIPT_DIR/lib3270j/src/main/java" -name "*.java" -print0)
if [ ${#LIB_SOURCES[@]} -eq 0 ]; then
find "$SCRIPT_DIR/lib3270j/src/main/java" -name "*.java" > "$BUILD_DIR/lib_sources.txt"
if [ ! -s "$BUILD_DIR/lib_sources.txt" ]; then
echo "ERROR: No sources found in lib3270j/src/main/java"
exit 1
fi
"$JAVAC_BIN" -d "$BUILD_DIR/lib3270j" "${LIB_SOURCES[@]}"
"$JAVAC_BIN" -d "$BUILD_DIR/lib3270j" @"$BUILD_DIR/lib_sources.txt"
# 3. Compile j3270
echo "Compiling j3270 application..."
APP_SOURCES=()
while IFS= read -r -d '' file; do
APP_SOURCES+=("$file")
done < <(find "$SCRIPT_DIR/j3270/src/main/java" -name "*.java" -print0)
if [ ${#APP_SOURCES[@]} -eq 0 ]; then
find "$SCRIPT_DIR/j3270/src/main/java" -name "*.java" > "$BUILD_DIR/app_sources.txt"
if [ ! -s "$BUILD_DIR/app_sources.txt" ]; then
echo "ERROR: No sources found in j3270/src/main/java"
exit 1
fi
"$JAVAC_BIN" -cp "$BUILD_DIR/lib3270j" -d "$BUILD_DIR/j3270" "${APP_SOURCES[@]}"
"$JAVAC_BIN" -cp "$BUILD_DIR/lib3270j" -d "$BUILD_DIR/j3270" @"$BUILD_DIR/app_sources.txt"
# Clean up temporary source lists
rm -f "$BUILD_DIR/lib_sources.txt" "$BUILD_DIR/app_sources.txt"
# Copy any resources if present
if [ -d "$SCRIPT_DIR/j3270/src/main/resources" ]; then
@@ -85,13 +77,7 @@ fi
# 4. Package executable JAR
echo "Packaging j3270.jar..."
cat << 'EOF' > "$BUILD_DIR/MANIFEST.MF"
Manifest-Version: 1.0
Main-Class: org.pubvm.j3270.J3270App
Implementation-Title: j3270
Implementation-Version: 0.1.0
Created-By: j3270 build_all.sh
EOF
printf "Manifest-Version: 1.0\nMain-Class: org.pubvm.j3270.J3270App\nImplementation-Title: j3270\nImplementation-Version: 0.1.0\nCreated-By: j3270 build_all.sh\n\n" > "$BUILD_DIR/MANIFEST.MF"
"$JAR_BIN" cvfm "$BUILD_DIR/j3270.jar" "$BUILD_DIR/MANIFEST.MF" \
-C "$BUILD_DIR/lib3270j" . \
@@ -100,3 +86,4 @@ EOF
echo "=== Build Complete ==="
echo "Executable JAR created: $BUILD_DIR/j3270.jar"
ls -lh "$BUILD_DIR/j3270.jar"