From 3dbec14a792b2ea6d8f67a6090d57f0f1859e6d9 Mon Sep 17 00:00:00 2001 From: Wojciech Kosior Date: Thu, 4 Jun 2020 20:41:50 +0200 Subject: integrate with cron daemon --- setup.sh | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'setup.sh') diff --git a/setup.sh b/setup.sh index 959a48f..8159db6 100755 --- a/setup.sh +++ b/setup.sh @@ -1,9 +1,31 @@ #!/bin/sh +# https://stackoverflow.com/questions/2990414/echo-that-outputs-to-stderr +errcho(){ >&2 echo "$@"; } + # run this script as root, once, at installation +if id -u 0tdns > /dev/null 2>&1; then + errcho "User 0tdns already exists." + errcho "Do you have Zero Trust DNS already set up?" + errcho "If so, you need to uninstall it properly" + errcho "(e.g. via provided uninstall.sh script)" + errcho "before setting it up again" + exit 1 +fi -# more will go here (e.g. initialization of postgres database) +if [ `id -u` != 0 ]; then + errcho "This script needs to be run as root" + exit 1 +fi # part of the program running inside network namespace # will run under this user useradd --system 0tdns + +# crontab automatically adds a 'DO NOT EDIT' header to +# crontab file; if we don't remove it every time - headers +# will accumulate :/ (not on Debian, though) +# line we want to add to crontab is in 0tdns_crontab file +crontab -l 2> /dev/null | + grep -vE '^# DO NOT EDIT THIS FILE|^# \(- installed on .*\)|^# \(Cron version .*\)' | + cat - 0tdns_crontab | crontab -- cgit v1.2.3