testing/snac: new aport

https://codeberg.org/grunfink/snac2
Simple, minimalistic ActivityPub instance written in portable C
This commit is contained in:
Celeste 2023-12-27 15:08:34 +00:00 committed by omni
parent 866e7e2bb5
commit 7d699bff67
3 changed files with 134 additions and 0 deletions

40
testing/snac/APKBUILD Normal file
View File

@ -0,0 +1,40 @@
# Contributor: Celeste <cielesti@protonmail.com>
# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=snac
pkgver=2.43
pkgrel=0
pkgdesc="Simple, minimalistic ActivityPub instance written in portable C"
url="https://codeberg.org/grunfink/snac2"
arch="all"
license="MIT"
makedepends="curl-dev openssl-dev"
install="$pkgname.pre-install"
pkgusers="snac"
pkggroups="snac"
subpackages="$pkgname-doc $pkgname-openrc"
source="$pkgname-$pkgver.tar.gz::https://codeberg.org/grunfink/snac2/archive/$pkgver.tar.gz
snac.initd
"
builddir="$srcdir/snac2"
options="!check" # no test suite
build() {
make
}
package() {
make install \
PREFIX="$pkgdir"/usr \
PREFIX_MAN="$pkgdir"/usr/share/man
install -dm750 -o snac -g snac "$pkgdir"/var/lib/snac
install -Dm644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname/
install -Dm755 "$srcdir"/snac.initd "$pkgdir"/etc/init.d/snac
}
sha512sums="
8daa1e60029826274b796851e2ba44441fa9a74a2f38b4c99d14f607f897c7c7031b3a190330cda1ec78eba68b5fa5f07db8ed374072fb254468ce35f298086d snac-2.43.tar.gz
8451eb37e5135b926a1a36b7f69d63cb76aa617ca3f9b9167f2284223582dcf66723ee67c51c6abc2d1605c41678d26f67ec6cb1bf920c61379dbf63f7852e1a snac.initd
"

83
testing/snac/snac.initd Normal file
View File

@ -0,0 +1,83 @@
#!/sbin/openrc-run
name=snac
description="Snac is an ActivityPub server written in portable C"
: ${SNAC_DATA:="/var/lib/snac/data"}
extra_stopped_commands="setup purge"
extra_commands="adduser deluser resetpwd"
description_setup="Setup the database at ${SNAC_DATA}"
description_purge="Purge old data from ${SNAC_DATA}"
description_adduser="Add a new user to ${SNAC_DATA}"
description_deluser="Delete a user from ${SNAC_DATA}"
description_resetpwd="Reset password of user in ${SNAC_DATA}"
command="/usr/bin/snac"
command_args="httpd ${SNAC_DATA}"
command_background="yes"
command_user="snac:snac"
pidfile="/run/${RC_SVCNAME}.pid"
error_log="/var/log/snac.log"
depend() {
need localmount net
after firewall
}
ensure_db_exists() {
if [ ! -f "${SNAC_DATA}/server.json" ]; then
setup || return 1
fi
return 0
}
start_pre() {
ensure_db_exists || return 1
checkpath -f -m 0640 -o "$command_user" "$error_log"
checkpath -d -m 0750 -o "$command_user" "${SNAC_DATA}"
}
setup() {
snac_exec init
}
purge() {
ensure_db_exists || return 1
ebegin "Purging old data from ${SNAC_DATA}"
snac_exec purge
eend $?
}
adduser() {
ensure_db_exists || return 1
snac_exec adduser
}
deluser() {
ensure_db_exists || return 1
read -p "Username: " username
snac_exec deluser $username
}
resetpwd() {
ensure_db_exists || return 1
read -p "Username: " username
snac_exec resetpwd $username
}
snac_exec() {
local subcmd="$1"
shift
start-stop-daemon --exec "$command" --user "$command_user" \
-- $subcmd "${SNAC_DATA}" $*
}

View File

@ -0,0 +1,11 @@
#!/bin/sh
addgroup -S snac 2>/dev/null
adduser -S -D -H \
-h /var/lib/snac \
-s /sbin/nologin \
-G snac \
-g "Snac minimalistic ActivityPub instance" \
snac 2>/dev/null
exit 0