#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd) PROJECT_ROOT=$(cd "$SCRIPT_DIR/../.." && pwd) OUT_DIR="$SCRIPT_DIR/dist" BUILD_DIR="$SCRIPT_DIR/build" PKG_ROOT="$BUILD_DIR/bitoj" VERSION="${VERSION:-0.1.0}" ARCH="${ARCH:-all}" rm -rf "$BUILD_DIR" "$OUT_DIR" mkdir -p "$PKG_ROOT/DEBIAN" \ "$PKG_ROOT/usr/lib/bitoj" \ "$PKG_ROOT/etc/bitoj" \ "$PKG_ROOT/lib/systemd/system" \ "$PKG_ROOT/var/lib/bitoj" \ "$PKG_ROOT/var/log/bitoj" cp "$SCRIPT_DIR/control" "$PKG_ROOT/DEBIAN/control" cp "$SCRIPT_DIR/postinst" "$PKG_ROOT/DEBIAN/postinst" cp "$SCRIPT_DIR/prerm" "$PKG_ROOT/DEBIAN/prerm" cp "$SCRIPT_DIR/postrm" "$PKG_ROOT/DEBIAN/postrm" chmod 0755 "$PKG_ROOT/DEBIAN/postinst" "$PKG_ROOT/DEBIAN/prerm" "$PKG_ROOT/DEBIAN/postrm" cp "$SCRIPT_DIR/bitoj.service" "$PKG_ROOT/lib/systemd/system/bitoj.service" mkdir -p "$PKG_ROOT/usr/lib/tmpfiles.d" cp "$SCRIPT_DIR/tmpfiles.conf" "$PKG_ROOT/usr/lib/tmpfiles.d/bitoj.conf" if command -v rsync >/dev/null 2>&1; then rsync -a --delete --exclude 'packaging/ubuntu' "$PROJECT_ROOT/" "$PKG_ROOT/usr/lib/bitoj/" else echo "rsync not found; fallback to cp -a" >&2 cp -a "$PROJECT_ROOT/." "$PKG_ROOT/usr/lib/bitoj/" rm -rf "$PKG_ROOT/usr/lib/bitoj/packaging/ubuntu" fi chmod +x "$PKG_ROOT/usr/lib/bitoj/judge" \ "$PKG_ROOT/usr/lib/bitoj/judge-daemon" \ "$PKG_ROOT/usr/lib/bitoj/judgeold" \ "$PKG_ROOT/usr/lib/bitoj/judge-daemonold" \ "$PKG_ROOT/usr/lib/bitoj/utils/bitoj_adduser" mkdir -p "$OUT_DIR" dpkg-deb --build "$PKG_ROOT" "$OUT_DIR/bitoj_${VERSION}_${ARCH}.deb" echo "Built: $OUT_DIR/bitoj_${VERSION}_${ARCH}.deb"