#!/usr/bin/env bash # Baut die Linux-Version (einzelne Programmdatei) – im Container python:3.12-bookworm (glibc 2.36: # läuft ab Debian 12, Ubuntu 24.04, Linux Mint 22; Debian 11 ist ausgelaufen). # Ergebnis: dist/Provisionsmanager95-linux-x86_64-.tar.gz set -euo pipefail cd "$(dirname "$0")/.." export LANG=C.UTF-8 LC_ALL=C.UTF-8 if ! command -v Xvfb >/dev/null; then apt-get update -qq && apt-get install -y -qq --no-install-recommends xvfb xauth fonts-dejavu-core >/dev/null fi Xvfb :91 -screen 0 1280x800x24 -nolisten tcp >/dev/null 2>&1 & XVFB_PID=$! trap 'kill $XVFB_PID 2>/dev/null || true' EXIT export DISPLAY=:91 sleep 1 python3 --version python3 -m pip install --disable-pip-version-check -q -r requirements-dev.txt echo "== Tests inkl. Oberfläche (Linux) ==" PROVTOOL_GUI_TESTS=1 timeout 900 python3 -m pytest -v -p no:cacheprovider VERSION=$(python3 -c "import provtool; print(provtool.__version__)") echo "== PyInstaller (Version $VERSION) ==" python3 -m PyInstaller --noconfirm --clean --distpath dist --workpath build/tmp build/provisionsmanager.spec test -x dist/Provisionsmanager95 echo "== Selbsttest des fertigen Programms ==" rm -f selbsttest.txt set +e timeout 300 dist/Provisionsmanager95 --selbsttest selbsttest.txt CODE=$? set -e cat selbsttest.txt 2>/dev/null || echo "(keine Ergebnisdatei)" if [ "$CODE" -ne 0 ] || ! head -1 selbsttest.txt 2>/dev/null | grep -qx OK; then echo "Selbsttest FEHLGESCHLAGEN (Exit-Code $CODE)"; exit 1 fi echo "Selbsttest bestanden" PAKET="Provisionsmanager95-linux-x86_64-$VERSION" rm -rf "dist/$PAKET" && mkdir -p "dist/$PAKET" cp dist/Provisionsmanager95 assets/app.png "dist/$PAKET/" cp README.md "dist/$PAKET/LIESMICH.md" cat > "dist/$PAKET/provisionsmanager95.desktop" < dist/VERSION ls -la dist