49 lines
1.6 KiB
Bash
49 lines
1.6 KiB
Bash
#!/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"
|