#!/usr/bin/env bash set -Eeuo pipefail WM_DEPLOY_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" # shellcheck source=remote-common.sh source "$WM_DEPLOY_DIR/scripts/remote-common.sh" server_ipv4="" identity_file="" revision="previous" usage() { printf 'Verwendung: %s [--revision SHA|previous] [--host IPV4] [--identity DATEI] [--user BENUTZER]\n' "$0" } while [[ "$#" -gt 0 ]]; do case "$1" in --revision) [[ "$#" -ge 2 ]] || wm_local_die "Wert für --revision fehlt." revision="$2" shift 2 ;; --host) [[ "$#" -ge 2 ]] || wm_local_die "Wert für --host fehlt." server_ipv4="$2" shift 2 ;; --identity) [[ "$#" -ge 2 ]] || wm_local_die "Wert für --identity fehlt." identity_file="$2" shift 2 ;; --user) [[ "$#" -ge 2 ]] || wm_local_die "Wert für --user fehlt." WATERMAPS_SSH_USER="$2" export WATERMAPS_SSH_USER shift 2 ;; -h|--help) usage exit 0 ;; *) wm_local_die "Unbekannte Option: $1" ;; esac done [[ "$revision" == "previous" || "$revision" =~ ^[0-9a-f]{40}$ ]] || wm_local_die "--revision muss 'previous' oder eine vollständige Git-Commit-SHA sein." wm_local_resolve_ssh "$server_ipv4" "$identity_file" wm_local_wait_for_ssh remote_prefix="" if [[ -n "$WM_REMOTE_SUDO" ]]; then remote_prefix="$WM_REMOTE_SUDO " fi ssh "${WM_SSH_OPTIONS[@]}" "$WM_SSH_TARGET" \ "${remote_prefix}/opt/watermaps/deploy/scripts/rollback.sh '$revision'"