summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/PKGBUILD70
-rw-r--r--arch/witryna.install15
-rw-r--r--arch/witryna.sysusers1
-rw-r--r--arch/witryna.tmpfiles5
4 files changed, 91 insertions, 0 deletions
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 <dawid@craftknight.com>
+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 -