dbpware-for-solaris/build-package.sh
Mario Fetka 96fe1e27ca
Some checks failed
Solaris Multi-Package Build / build (i386, 172.16.11.20, 2.6) (push) Failing after 10m9s
build script update
2025-09-07 11:22:06 +02:00

58 lines
1.4 KiB
Bash
Executable File

#!/usr/dbpware/bin/bash
# Usage: ./build-package.sh <package-name>
set -e
PKG="$1"
if [ -z "$PKG" ]; then
echo "Usage: $0 <package-name>"
exit 1
fi
# --- Host-level lock ---
LOCKDIR="/tmp/build-host.lock"
while ! mkdir "$LOCKDIR" 2>/dev/null; do
echo "Another build is running on this host. Waiting..."
sleep 10
done
trap "rmdir '$LOCKDIR'" EXIT
echo "Acquired host lock, starting build of $PKG"
cd "$BUILDPKG_BASE/$PKG"
topdir=$(ggrep -E '^topdir=' build.sh | cut -d= -f2)
version=$(ggrep -E '^version=' build.sh | cut -d= -f2)
pkgver=$(ggrep -E '^pkgver=' build.sh | cut -d= -f2)
secname="$topdir"
PKGFILE=$(ls -1 ${secname}-${version}-${pkgver}.dbp*.gz 2>/dev/null | head -n1 || true)
if [ -n "$PKGFILE" ]; then
echo "Package already built: $PKGFILE. Skipping."
exit 0
fi
# --- Run the build ---
bash build.sh all
EXIT_CODE=$?
# --- Find logfile ---
LOGFILE=$(ls -1 ${secname}-*.log 2>/dev/null | sort | tail -n1)
# --- Always output logfile ---
if [ -f "$LOGFILE" ]; then
echo
echo "================ Log output: $LOGFILE ================"
cat "$LOGFILE"
echo "====================================================="
fi
# --- Handle logfile ---
if [ $EXIT_CODE -eq 0 ]; then
echo "Build succeeded for $PKG, deleting logfile: $LOGFILE"
rm -f "$LOGFILE" || true
else
echo "Build FAILED for $PKG, logfile kept: $LOGFILE"
exit $EXIT_CODE
fi
echo "=== Finished build of $PKG ==="