Showing 1 changed files with 25 additions and 3 deletions
+25 -3
scripts/sync_local_hosts.sh
@@ -70,6 +70,23 @@ quote_ros() {
70 70
     printf '%s' "$1" | sed 's/\\/\\\\/g; s/"/\\"/g'
71 71
 }
72 72
 
73
+is_local_is_vpn_gw() {
74
+    local host_name
75
+    host_name="$(hostname -f 2>/dev/null || hostname 2>/dev/null || true)"
76
+    [[ "$host_name" == "jumper.madagascar.xdev.ro" ]] && return 0
77
+    ip addr show 2>/dev/null | grep -q '192\.168\.2\.100' && return 0
78
+    return 1
79
+}
80
+
81
+run_is_vpn_gw_payload() {
82
+    local remote_dir="$1"
83
+    if is_local_is_vpn_gw; then
84
+        REMOTE_DIR="$remote_dir" bash -s
85
+    else
86
+        ssh "$IS_VPN_GW" "REMOTE_DIR='$remote_dir' bash -s"
87
+    fi
88
+}
89
+
73 90
 while IFS= read -r line || [[ -n "$line" ]]; do
74 91
     [[ -z "${line//[[:space:]]/}" ]] && continue
75 92
     [[ "$line" =~ ^[[:space:]]*# ]] && continue
@@ -110,9 +127,14 @@ sync_is_vpn_gw() {
110 127
 
111 128
     log "Syncing $IS_VPN_GW"
112 129
     remote_dir="/tmp/xdev-local-dns.$$"
113
-    ssh "$IS_VPN_GW" "mkdir -p '$remote_dir'"
114
-    scp "$HOSTS_ROWS" "$CLOAK_ROWS" "$NAMES_FILE" "$IS_VPN_GW:$remote_dir/" >/dev/null
115
-    ssh "$IS_VPN_GW" "REMOTE_DIR='$remote_dir' bash -s" <<'REMOTE'
130
+    if is_local_is_vpn_gw; then
131
+        mkdir -p "$remote_dir"
132
+        cp "$HOSTS_ROWS" "$CLOAK_ROWS" "$NAMES_FILE" "$remote_dir/"
133
+    else
134
+        ssh "$IS_VPN_GW" "mkdir -p '$remote_dir'"
135
+        scp "$HOSTS_ROWS" "$CLOAK_ROWS" "$NAMES_FILE" "$IS_VPN_GW:$remote_dir/" >/dev/null
136
+    fi
137
+    run_is_vpn_gw_payload "$remote_dir" <<'REMOTE'
116 138
 set -euo pipefail
117 139
 stamp="$(date +%Y%m%d_%H%M%S)"
118 140
 cp /etc/hosts "/etc/hosts.bak.$stamp"