#!/bin/sh

set -e

HOSTNAME=$(hostname)

# prepare configuration
cat >/etc/csync2.cfg <<EOF
group test
{
        host 127.0.0.1;
        host 127.0.0.2;
        host $HOSTNAME;
        key /etc/csync2.key;
        include /etc/shells;
}
EOF

# prepare keys
rm -f /etc/csync2.key
csync2 -k /etc/csync2.key

rm -f /etc/csync2_ssl_key.pem /etc/csync2_ssl_cert.pem
openssl req -x509 -newkey rsa:2048 \
  -days 300 -subj '/CN=csync2' -nodes \
  -keyout /etc/csync2_ssl_key.pem \
  -out    /etc/csync2_ssl_cert.pem 2>&1

# start daemon socket
systemctl start csync2.socket

# wait for listening socket
for i in 1 2 3 4 5; do
  if ss state listening 'sport = :csync2' | grep -q ^tcp; then
    break
  fi

  echo Waiting for csync2 socket...
  sleep 1
done
systemctl status csync2.socket

# sync with inetd daemon on this host
csync2 -x -N 127.0.0.2 -P 127.0.0.1 -v 2>&1

# stop daemon socket
systemctl stop csync2.socket
