add packaging scripts
This commit is contained in:
48
packaging/ubuntu/build-deb.sh
Normal file
48
packaging/ubuntu/build-deb.sh
Normal file
@@ -0,0 +1,48 @@
|
||||
#!/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"
|
||||
Reference in New Issue
Block a user