diff --git a/scripts/deploy-systemd.sh b/scripts/deploy-systemd.sh index d0005f2..497a964 100755 --- a/scripts/deploy-systemd.sh +++ b/scripts/deploy-systemd.sh @@ -3,6 +3,7 @@ set -euo pipefail APP_HOME="${APP_HOME:-/home/zaine/master-folder/projects/java_projects/org_backend}" SERVICE_NAME="${SERVICE_NAME:-org-backend.service}" +SYSTEMCTL_TIMEOUT="${SYSTEMCTL_TIMEOUT:-120}" SOURCE_DIR="$(pwd)" SOURCE_JAR="${SOURCE_DIR}/target/org-backend.jar" @@ -24,11 +25,30 @@ fi mkdir -p "${APP_TARGET_DIR}" if [[ "$(realpath "${SOURCE_JAR}")" != "$(realpath -m "${APP_JAR}")" ]]; then + echo "Installing jar to ${APP_JAR}" install -m 0644 "${SOURCE_JAR}" "${APP_JAR}" +else + echo "Built jar is already in place at ${APP_JAR}" fi -sudo install -m 0644 "${SOURCE_SERVICE}" "${SYSTEMD_SERVICE}" -sudo systemctl daemon-reload -sudo systemctl enable "${SERVICE_NAME}" -sudo systemctl restart "${SERVICE_NAME}" -sudo systemctl --no-pager --full status "${SERVICE_NAME}" +echo "Checking passwordless sudo access" +sudo -n true + +echo "Installing systemd unit to ${SYSTEMD_SERVICE}" +sudo -n install -m 0644 "${SOURCE_SERVICE}" "${SYSTEMD_SERVICE}" + +echo "Reloading systemd" +sudo -n systemctl daemon-reload + +echo "Enabling ${SERVICE_NAME}" +sudo -n systemctl enable "${SERVICE_NAME}" + +echo "Restarting ${SERVICE_NAME}" +if ! timeout "${SYSTEMCTL_TIMEOUT}" sudo -n systemctl --no-ask-password restart "${SERVICE_NAME}"; then + echo "Restart did not finish within ${SYSTEMCTL_TIMEOUT}s" >&2 + sudo -n systemctl --no-pager --full status "${SERVICE_NAME}" || true + exit 1 +fi + +echo "Service status" +sudo -n systemctl --no-pager --full status "${SERVICE_NAME}"