#!/bin/bash set -euo pipefail ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" cd "$ROOT" if [[ $# -ne 1 ]]; then echo "Usage: $0 VERSION" exit 1 fi VERSION="$1" if [[ ! "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then echo "Invalid version: $VERSION" echo "Expected MAJOR.MINOR.PATCH, for example 0.1.6" exit 1 fi STAGE="$ROOT/packaging/root" OUTPUT="$ROOT/dist/ekklesia-classroom_${VERSION}_amd64.deb" echo "Building Ekklesia Classroom ${VERSION}" # Always construct the package from clean canonical sources. rm -rf "$STAGE" mkdir -p "$STAGE/DEBIAN" "$ROOT/dist" # Debian package metadata. sed \ "s/^Version: @VERSION@$/Version: ${VERSION}/" \ "$ROOT/packaging/debian/control.template" \ > "$STAGE/DEBIAN/control" install -m755 \ "$ROOT/packaging/debian/postinst" \ "$STAGE/DEBIAN/postinst" # Classroom UI configuration. install -Dm644 \ "$ROOT/config/sway/config" \ "$STAGE/etc/ekklesia-classroom/sway/config" install -Dm644 \ "$ROOT/config/waybar/config.jsonc" \ "$STAGE/etc/ekklesia-classroom/waybar/config.jsonc" install -Dm644 \ "$ROOT/config/waybar/style.css" \ "$STAGE/etc/ekklesia-classroom/waybar/style.css" # Classroom commands. install -Dm755 \ "$ROOT/scripts/classroom-browser" \ "$STAGE/usr/local/bin/classroom-browser" install -Dm644 \ "$ROOT/config/wallpapers/classroom-default.png" \ "$STAGE/usr/share/backgrounds/ekklesia/classroom-default.png" install -Dm755 \ "$ROOT/scripts/classroom-dock" \ "$STAGE/usr/local/bin/classroom-dock" install -Dm644 \ "$ROOT/config/dock/style.css" \ "$STAGE/etc/ekklesia-classroom/dock/style.css" install -Dm755 \ "$ROOT/scripts/ekklesia-classroom-update" \ "$STAGE/usr/local/bin/ekklesia-classroom-update" # System configuration. install -Dm644 \ "$ROOT/systemd/autologin/autologin.conf" \ "$STAGE/etc/systemd/system/getty@tty1.service.d/autologin.conf" install -Dm644 \ "$ROOT/systemd/updater/ekklesia-classroom-update.service" \ "$STAGE/etc/systemd/system/ekklesia-classroom-update.service" install -Dm644 \ "$ROOT/systemd/updater/ekklesia-classroom-update.timer" \ "$STAGE/etc/systemd/system/ekklesia-classroom-update.timer" install -Dm644 \ "$ROOT/config/icons/dvd.svg" \ "$STAGE/etc/ekklesia-classroom/icons/dvd.svg" install -Dm644 \ "$ROOT/config/icons/live.svg" \ "$STAGE/etc/ekklesia-classroom/icons/live.svg" install -Dm644 \ "$ROOT/config/icons/live-off.svg" \ "$STAGE/etc/ekklesia-classroom/icons/live-off.svg" install -Dm644 \ "$ROOT/config/icons/browser.svg" \ "$STAGE/etc/ekklesia-classroom/icons/browser.svg" printf '%s\n' "$VERSION" > "$ROOT/VERSION" dpkg-deb \ --root-owner-group \ --build "$STAGE" "$OUTPUT" echo echo "Built:" echo "$OUTPUT" sha256sum "$OUTPUT"