[Unit] Description=Initializer After=network-online.target [Service] Type=oneshot ExecStartPre=/bin/bash -euxc ' \ BACKUP_DESTINATION=`cat /data/BACKUP_DESTINATION`; \ echo "Intitializing backups with $BACKUP_DESTINATION"; \ if [ ! -d /data/domains/%i/.git ]; then \ if [ `ssh $BACKUP_DESTINATION "test -d %i"; echo $?` -eq 0 ]; then \ git clone $BACKUP_DESTINATION:%i /data/domains/%i; \ cd /data/domains/%i; \ else \ ssh $BACKUP_DESTINATION " \ if [ ! -d %i ]; then \ mkdir -p %i; \ cd %i; \ git init --bare; \ fi"; \ if [ ! -d /data/domains/%i ]; then \ mkdir /data/domains/%i; \ fi; \ cd /data/domains/%i; \ git init; \ git remote add origin $BACKUP_DESTINATION:%i; \ fi; \ git config --local user.email "backups@`hostname`"; \ git config --local user.name "`hostname` hourly backups"; \ fi' ExecStart=/bin/bash -euxc ' \ if [ -d /data/import/%i ]; then \ cp -av /data/import/%i/* /data/domains/%i; \ cp /data/import/%i/.env /data/domains/%i/; \ cd /data/domains/%i/; \ git add .env; \ rm -rf /data/import/%i; \ fi; \ cp /data/domains/%i/TLS/%i.pem /data/runtime/haproxy/approved-certs/%i.pem;'