From ce0dbf6b249956700c6a1705bf4ad85a09d53e8c Mon Sep 17 00:00:00 2001 From: Dawid Rycerz Date: Sun, 15 Feb 2026 21:27:00 +0100 Subject: feat: witryna 0.2.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Switch, cleanup, and status CLI commands. Persistent build state via state.json. Post-deploy hooks on success and failure with WITRYNA_BUILD_STATUS. Dependency diet (axum→tiny_http, clap→argh, tracing→log). Drop built-in rate limiting. Nix flake with NixOS module. Arch Linux PKGBUILD. Centralized version management. Co-Authored-By: Claude Opus 4.6 --- arch/PKGBUILD | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++ arch/witryna.install | 15 +++++++++++ arch/witryna.sysusers | 1 + arch/witryna.tmpfiles | 5 ++++ 4 files changed, 91 insertions(+) create mode 100644 arch/PKGBUILD create mode 100644 arch/witryna.install create mode 100644 arch/witryna.sysusers create mode 100644 arch/witryna.tmpfiles (limited to 'arch') diff --git a/arch/PKGBUILD b/arch/PKGBUILD new file mode 100644 index 0000000..c16df3d --- /dev/null +++ b/arch/PKGBUILD @@ -0,0 +1,70 @@ +# Maintainer: Dawid Rycerz +pkgname=witryna +pkgver=0.2.0 +pkgrel=1 +pkgdesc='Minimalist Git-based static site deployment orchestrator' +url='https://git.craftknight.com/dawid/witryna' +license=('MIT') +arch=('x86_64') +makedepends=('cargo' 'git') +depends=('gcc-libs' 'glibc' 'git' 'git-lfs') +optdepends=('podman: container runtime for builds (recommended)' + 'docker: alternative container runtime') +backup=('etc/witryna/witryna.toml') +install=witryna.install +_tag=v0.2.0 +source=("$pkgname::git+https://git.craftknight.com/dawid/witryna.git#tag=$_tag" + 'witryna.sysusers' + 'witryna.tmpfiles' + 'witryna.install') +b2sums=('SKIP' 'SKIP' 'SKIP' 'SKIP') + +prepare() { + cd "$pkgname" + export RUSTUP_TOOLCHAIN=stable + cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')" +} + +build() { + cd "$pkgname" + export RUSTUP_TOOLCHAIN=stable + export CARGO_TARGET_DIR=target + cargo build --frozen --release +} + +check() { + cd "$pkgname" + export RUSTUP_TOOLCHAIN=stable + export CARGO_TARGET_DIR=target + cargo test --frozen +} + +package() { + cd "$pkgname" + + # Binary + install -Dm0755 target/release/witryna "$pkgdir/usr/bin/witryna" + + # Man pages + install -Dm0644 man/witryna.1 "$pkgdir/usr/share/man/man1/witryna.1" + install -Dm0644 man/witryna.toml.5 "$pkgdir/usr/share/man/man5/witryna.toml.5" + + # Config + install -Dm0644 examples/witryna.toml "$pkgdir/etc/witryna/witryna.toml" + + # Systemd + install -Dm0644 debian/witryna.service "$pkgdir/usr/lib/systemd/system/witryna.service" + install -Dm0644 "$srcdir/witryna.sysusers" "$pkgdir/usr/lib/sysusers.d/witryna.conf" + install -Dm0644 "$srcdir/witryna.tmpfiles" "$pkgdir/usr/lib/tmpfiles.d/witryna.conf" + + # License + install -Dm0644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" + + # Examples / documentation + install -Dm0755 examples/hooks/caddy-deploy.sh "$pkgdir/usr/share/doc/$pkgname/examples/hooks/caddy-deploy.sh" + install -Dm0644 examples/caddy/Caddyfile "$pkgdir/usr/share/doc/$pkgname/examples/caddy/Caddyfile" + install -Dm0644 examples/nginx/witryna.conf "$pkgdir/usr/share/doc/$pkgname/examples/nginx/witryna.conf" + install -Dm0644 examples/witryna.yaml "$pkgdir/usr/share/doc/$pkgname/examples/witryna.yaml" + install -Dm0644 examples/systemd/docker.conf "$pkgdir/usr/share/doc/$pkgname/examples/systemd/docker.conf" + install -Dm0644 examples/systemd/podman.conf "$pkgdir/usr/share/doc/$pkgname/examples/systemd/podman.conf" +} diff --git a/arch/witryna.install b/arch/witryna.install new file mode 100644 index 0000000..00199e0 --- /dev/null +++ b/arch/witryna.install @@ -0,0 +1,15 @@ +post_install() { + echo '==> Witryna has been installed.' + echo ' 1. Edit /etc/witryna/witryna.toml' + echo ' 2. Configure your container runtime:' + echo ' Podman: cp /usr/share/doc/witryna/examples/systemd/podman.conf \' + echo ' /etc/systemd/system/witryna.service.d/10-runtime.conf' + echo ' Docker: cp /usr/share/doc/witryna/examples/systemd/docker.conf \' + echo ' /etc/systemd/system/witryna.service.d/10-runtime.conf' + echo ' 3. systemctl daemon-reload && systemctl enable --now witryna' + echo ' See man witryna(1) and man witryna.toml(5) for documentation.' +} + +post_upgrade() { + : +} diff --git a/arch/witryna.sysusers b/arch/witryna.sysusers new file mode 100644 index 0000000..7c202be --- /dev/null +++ b/arch/witryna.sysusers @@ -0,0 +1 @@ +u witryna - "Witryna deployment daemon" /var/lib/witryna /usr/bin/nologin diff --git a/arch/witryna.tmpfiles b/arch/witryna.tmpfiles new file mode 100644 index 0000000..a0ab1fe --- /dev/null +++ b/arch/witryna.tmpfiles @@ -0,0 +1,5 @@ +d /var/lib/witryna 0755 witryna witryna - +d /var/lib/witryna/clones 0755 witryna witryna - +d /var/lib/witryna/builds 0755 witryna witryna - +d /var/lib/witryna/cache 0755 witryna witryna - +d /var/log/witryna 0755 witryna witryna - -- cgit v1.2.3