From a552c76a36da20756aa445c38501177a259aeaa5 Mon Sep 17 00:00:00 2001 From: Alexandre Date: Sun, 13 Mar 2022 15:47:15 +0100 Subject: [PATCH] Add initial structure for supporting multiple service managers --- README.md | 3 +++ install.sh | 35 ++++++++++++++++++++++------------- 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index dbd6fc7..733b321 100644 --- a/README.md +++ b/README.md @@ -17,3 +17,6 @@ Version 2 implementation works roughly as follows: * `systemd-templates/` contains Systemd units templates for running the script unattended. #### Installation * `install.sh` script copies Systemd templates to their destination, and enables conf-sync timer. + +### TODO +* Add install support for OpenBSD diff --git a/install.sh b/install.sh index 531e747..fc17a97 100755 --- a/install.sh +++ b/install.sh @@ -2,22 +2,31 @@ source "$(dirname "$0")/variables.conf" -# TODO handle non-Systemd systems +# NOTE: the handling of init/service manager comes from this discussion: +# https://unix.stackexchange.com/questions/18209/detect-init-system-using-the-shell -echo "Copying Systemd units to system directory..." -sudo cp $(dirname "$0")/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 - sudo cp $(dirname "$0")/systemd-templates/conf-sync-server.timer /etc/systemd/system/conf-sync.timer +if [ -e /run/systemd/system ]; then # service manager is Systemd + echo "Copying Systemd units to system directory..." + sudo cp $(dirname "$0")/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 + sudo cp $(dirname "$0")/systemd-templates/conf-sync-server.timer /etc/systemd/system/conf-sync.timer + else + sudo cp $(dirname "$0")/systemd-templates/conf-sync-desktop.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 +elif [ "$(uname)" = "OpenBSD" ]; then + echo "ERROR: OpenBSD is not yet supported, but this is planned." + exit 0 else - sudo cp $(dirname "$0")/systemd-templates/conf-sync-desktop.timer /etc/systemd/system/conf-sync.timer + echo "ERROR: could not determine a supported system. Exiting." + exit 1 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