#!/usr/bin/env bash
##
## SNAC-ADMIN
##  a simple script that is supposed to improve
##  a snac admin's life, especially when snac
##  is being run as a systemd.unit with
##  DynamicUser=yes enabled.
##  Please make sure to adjust SNAC_DIR
##  down below according to your setup.
##
## USAGE
##  snac-admin state
##  snac-admin adduser rikkert
##  snac-admin block example.org
##  snac-admin verify_links lisa
##  ...
##
## Author: @chris@social.shtrophic.net
## 
## Released into the public domain 
##

set -e

SNAC_PID=$(pidof snac)
SNAC_DIR=/var/lib/snac

SNAC_VERB=$1
shift

if [ -z $SNAC_PID ]; then
	echo "no such process" >&2
	exit 1
fi

if [ $(id -u) -ne 0 ]; then
	echo "not root" >&2
	exit 1
fi

if [ ! -d $SNAC_DIR ]; then
	echo "$SNAC_DIR is not a directory" >&2
	exit 1
fi

if [ -z $SNAC_VERB ]; then
	echo "no arguments" >&2
	exit 1
fi

nsenter -ae -S follow -G follow -t $SNAC_PID -- snac $SNAC_VERB $SNAC_DIR $@