diff options
Diffstat (limited to 'setup.sh')
-rwxr-xr-x | setup.sh | 24 |
1 files changed, 23 insertions, 1 deletions
@@ -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 |