Files
bin/sync-evolution
T

40 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env bash
# Sync Evolution accounts, databases, signatures, keyrings, and dconf to fleet nodes (bazina, boxC)
set -euo pipefail
TARGET_NODES=("bazina" "boxC")
echo "[sync-evolution] Stopping local Evolution background instances..."
evolution --quit 2>/dev/null || true
sleep 1
TMP_DCONF=$(mktemp /tmp/evolution_dconf_XXXXXX.ini)
dconf dump /org/gnome/evolution/ > "$TMP_DCONF"
for node in "${TARGET_NODES[@]}"; do
echo "[sync-evolution] Syncing to ${node}..."
ssh -o ConnectTimeout=3 "${node}" "evolution --quit 2>/dev/null || true" || true
# Sync config & data
rsync -avz --delete "$HOME/.config/evolution/" "${node}:~/.config/evolution/"
rsync -avz --delete "$HOME/.local/share/evolution/" "${node}:~/.local/share/evolution/"
# Sync keyrings
if [ -f "$HOME/.local/share/keyrings/Default_keyring.keyring" ]; then
rsync -avz "$HOME/.local/share/keyrings/Default_keyring.keyring" "${node}:~/.local/share/keyrings/"
fi
if [ -f "$HOME/.local/share/keyrings/default" ]; then
rsync -avz "$HOME/.local/share/keyrings/default" "${node}:~/.local/share/keyrings/"
fi
# Load dconf preferences
cat "$TMP_DCONF" | ssh "${node}" "dconf load /org/gnome/evolution/"
# Fix permissions
ssh "${node}" "chmod -R u=rwX,go= ~/.config/evolution ~/.local/share/evolution ~/.local/share/keyrings"
echo "[sync-evolution] Done for ${node}."
done
rm -f "$TMP_DCONF"
echo "[sync-evolution] Fleet Evolution synchronization complete."