Initial commit: freeze-watcher daemon, GUI, systemd unit, PKGBUILD

This commit is contained in:
luna 2026-05-10 20:56:19 -07:00
commit d41f861802
10 changed files with 655 additions and 0 deletions

39
packaging/PKGBUILD Normal file
View file

@ -0,0 +1,39 @@
# Maintainer: luna <anassaeneroi@pm.me>
pkgname=freeze-watcher
pkgver=0.1.0
pkgrel=1
pkgdesc="Continuously samples system state and snapshots detailed diagnostics when freeze conditions are detected"
arch=('any')
url="https://github.com/luna/freeze-watcher"
license=('MIT')
depends=('bash' 'systemd' 'python' 'pyside6' 'sysstat' 'procps-ng' 'util-linux')
optdepends=('xdg-utils: open log directory from GUI')
source=("$pkgname-$pkgver.tar.gz::file://$PWD/../$pkgname-$pkgver.tar.gz")
sha256sums=('SKIP')
backup=('etc/systemd/system/freeze-watcher.service')
package() {
cd "$srcdir/$pkgname-$pkgver"
make DESTDIR="$pkgdir" PREFIX=/usr install
}
post_install() {
echo "==> Run 'sudo systemctl enable --now freeze-watcher.service' to start"
echo "==> Snapshots will be written to /var/log/freeze-watcher/"
echo "==> Launch the GUI from your app menu (Freeze Watcher) or 'freeze-monitor-gui'"
}
post_upgrade() {
systemctl daemon-reload
if systemctl is-active --quiet freeze-watcher.service; then
echo "==> Restart the service to pick up changes:"
echo " sudo systemctl restart freeze-watcher.service"
fi
}
post_remove() {
if systemctl is-enabled --quiet freeze-watcher.service 2>/dev/null; then
systemctl disable --now freeze-watcher.service
fi
echo "==> Logs at /var/log/freeze-watcher/ preserved. Remove manually if desired."
}

26
packaging/build-package.sh Executable file
View file

@ -0,0 +1,26 @@
#!/bin/bash
# Build a local Arch package from the current source tree.
# Usage: ./packaging/build-package.sh
set -e
REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
PKGNAME=freeze-watcher
PKGVER=$(awk -F= '/^pkgver=/{print $2}' "$REPO_ROOT/packaging/PKGBUILD")
cd "$REPO_ROOT"
tmp=$(mktemp -d)
trap "rm -rf $tmp" EXIT
# Stage source as a tarball (PKGBUILD expects it as $pkgname-$pkgver.tar.gz)
mkdir "$tmp/$PKGNAME-$PKGVER"
cp -r src systemd desktop Makefile README.md LICENSE "$tmp/$PKGNAME-$PKGVER/" 2>/dev/null || true
tar czf "$tmp/$PKGNAME-$PKGVER.tar.gz" -C "$tmp" "$PKGNAME-$PKGVER"
cp packaging/PKGBUILD "$tmp/PKGBUILD"
cd "$tmp"
makepkg -f --noconfirm
mv "$PKGNAME-$PKGVER-"*.pkg.tar.* "$REPO_ROOT/"
echo
echo "Built: $REPO_ROOT/$(ls "$REPO_ROOT" | grep "^$PKGNAME-$PKGVER" | head -1)"
echo "Install with: sudo pacman -U <path-to-pkg>"