diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..aa03eb2 --- /dev/null +++ b/install.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +source "$(dirname "$0")/variables.conf" + +# TODO handle non-Systemd systems + +echo "Copying Systemd units to system directory..." +sudo cp systemd-templates/conf-sync.service /etc/systemd/system/ +sudo sed -i -e "s/PH_USER/$(whoami)/g" /etc/systemd/system/conf-sync.service +sudo sed -i -e "s:PH_DIRECTORY:$(pwd):g" /etc/systemd/system/conf-sync.service +if $client_type == "server"; then # TODO not finished + sudo cp systemd-templates/dns-update.timer /etc/systemd/system/conf-sync.timer +else + sudo cp systemd-templates/dns-update.timer /etc/systemd/system/conf-sync.timer +fi + +echo "Reloading Systemd..." +sudo systemctl daemon-reload +echo "Enabling timer (not starting it, either do it manually or reboot)..." +sudo systemctl enable conf-sync.timer + +echo "Finished install. Exiting..." +exit 0 diff --git a/systemd-templates/conf-sync-desktop.timer b/systemd-templates/conf-sync-desktop.timer new file mode 100644 index 0000000..dc1366e --- /dev/null +++ b/systemd-templates/conf-sync-desktop.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Run conf-sync after boot (for desktops) + +[Timer] +Unit=conf-sync.service +OnBootSec=5min + +[Install] +WantedBy=timers.target diff --git a/systemd-templates/conf-sync-server.timer b/systemd-templates/conf-sync-server.timer new file mode 100644 index 0000000..d255b24 --- /dev/null +++ b/systemd-templates/conf-sync-server.timer @@ -0,0 +1,10 @@ +[Unit] +Description=Run conf-sync daily (for servers) + +[Timer] +Unit=conf-sync.service +OnCalendar=*-*-* 06:00:00 +Persistent=true + +[Install] +WantedBy=timers.target diff --git a/systemd-templates/conf-sync.service b/systemd-templates/conf-sync.service new file mode 100644 index 0000000..67431e9 --- /dev/null +++ b/systemd-templates/conf-sync.service @@ -0,0 +1,8 @@ +[Unit] +Description=Configuration files synchronisation +After=network.target + +[Service] +Type=oneshot +User=PH_USER +ExecStart=PH_DIRECTORY/conf-sync.sh