Fix sync script
This commit is contained in:
2 files changed
+153
-15
No files matched your search
@@ -91,3 +91,129 @@
|
||||
[0;34m[2026-09-28 19:48:28][0m Modus: status
|
||||
[0;34m[2026-09-28 19:48:28][0m ═══════════════════════════════════════════════════════════
|
||||
[0;34m[2026-09-28 19:48:28][0m Status: Vergleiche Repo mit Home-Dir...
|
||||
[0;34m[2026-09-28 19:49:48][0m ═══════════════════════════════════════════════════════════
|
||||
[0;34m[2026-09-28 19:49:48][0m Modus: status
|
||||
[0;34m[2026-09-28 19:49:48][0m ═══════════════════════════════════════════════════════════
|
||||
[0;34m[2026-09-28 19:49:48][0m Status: Vergleiche Repo mit Home-Dir...
|
||||
[0;34m[2026-09-28 19:50:35][0m ═══════════════════════════════════════════════════════════
|
||||
[0;34m[2026-09-28 19:50:35][0m Modus: status
|
||||
[0;34m[2026-09-28 19:50:35][0m ═══════════════════════════════════════════════════════════
|
||||
[0;34m[2026-09-28 19:50:35][0m Status: Vergleiche Repo mit Home-Dir...
|
||||
[0;34m[2026-09-28 19:51:40][0m ═══════════════════════════════════════════════════════════
|
||||
[0;34m[2026-09-28 19:51:40][0m Modus: status
|
||||
[0;34m[2026-09-28 19:51:40][0m ═══════════════════════════════════════════════════════════
|
||||
[0;34m[2026-09-28 19:51:40][0m Status: Vergleiche Repo mit Home-Dir...
|
||||
[0;34m[DEBUG][0m ✓ identisch: .bash_aliases
|
||||
[0;34m[2026-09-28 19:51:53][0m ═══════════════════════════════════════════════════════════
|
||||
[0;34m[2026-09-28 19:51:53][0m Modus: status
|
||||
[0;34m[2026-09-28 19:51:53][0m ═══════════════════════════════════════════════════════════
|
||||
[0;34m[2026-09-28 19:51:53][0m Status: Vergleiche Repo mit Home-Dir...
|
||||
[0;34m[2026-09-28 19:52:09][0m ═══════════════════════════════════════════════════════════
|
||||
[0;34m[2026-09-28 19:52:09][0m Modus: status
|
||||
[0;34m[2026-09-28 19:52:09][0m ═══════════════════════════════════════════════════════════
|
||||
[0;34m[2026-09-28 19:52:09][0m Status: Vergleiche Repo mit Home-Dir...
|
||||
[0;34m[2026-09-28 19:52:27][0m ═══════════════════════════════════════════════════════════
|
||||
[0;34m[2026-09-28 19:52:27][0m Modus: pull
|
||||
[0;34m[2026-09-28 19:52:27][0m DRY-RUN: Keine Änderungen werden vorgenommen
|
||||
[0;34m[2026-09-28 19:52:27][0m ═══════════════════════════════════════════════════════════
|
||||
[0;34m[2026-09-28 19:52:27][0m Pull: Synchronisiere geänderte Dateien von Home-Dir ins Repo...
|
||||
[0;34m[2026-09-28 19:52:31][0m ═══════════════════════════════════════════════════════════
|
||||
[0;34m[2026-09-28 19:52:31][0m Modus: push
|
||||
[0;34m[2026-09-28 19:52:31][0m DRY-RUN: Keine Änderungen werden vorgenommen
|
||||
[0;34m[2026-09-28 19:52:31][0m ═══════════════════════════════════════════════════════════
|
||||
[0;34m[2026-09-28 19:52:31][0m Push: Synchronisiere Repo-Dateien ins Home-Dir...
|
||||
[0;34m[DEBUG][0m ⊙ unverändert: .bash_aliases
|
||||
[0;34m[2026-09-28 19:52:43][0m ═══════════════════════════════════════════════════════════
|
||||
[0;34m[2026-09-28 19:52:43][0m Modus: push
|
||||
[0;34m[2026-09-28 19:52:43][0m DRY-RUN: Keine Änderungen werden vorgenommen
|
||||
[0;34m[2026-09-28 19:52:43][0m ═══════════════════════════════════════════════════════════
|
||||
[0;34m[2026-09-28 19:52:43][0m Push: Synchronisiere Repo-Dateien ins Home-Dir...
|
||||
[0;34m[DEBUG][0m ⊙ unverändert: .bash_aliases
|
||||
[2026-09-28 19:52:58] ═══════════════════════════════════════════════════════════
|
||||
[2026-09-28 19:52:58] Modus: status
|
||||
[2026-09-28 19:52:58] ═══════════════════════════════════════════════════════════
|
||||
[2026-09-28 19:52:58] Status: Vergleiche Repo mit Home-Dir...
|
||||
[DEBUG] ✓ identisch: .bash_aliases
|
||||
[2026-09-28 19:53:09] ═══════════════════════════════════════════════════════════
|
||||
[2026-09-28 19:53:09] Modus: status
|
||||
[2026-09-28 19:53:09] ═══════════════════════════════════════════════════════════
|
||||
[2026-09-28 19:53:09] Status: Vergleiche Repo mit Home-Dir...
|
||||
[2026-09-28 19:53:59] ═══════════════════════════════════════════════════════════
|
||||
[2026-09-28 19:53:59] Modus: status
|
||||
[2026-09-28 19:53:59] ═══════════════════════════════════════════════════════════
|
||||
[2026-09-28 19:53:59] Status: Vergleiche Repo mit Home-Dir...
|
||||
[DEBUG] ✓ identisch: .bash_aliases
|
||||
[2026-09-28 19:54:21] ═══════════════════════════════════════════════════════════
|
||||
[2026-09-28 19:54:21] Modus: status
|
||||
[2026-09-28 19:54:21] ═══════════════════════════════════════════════════════════
|
||||
[2026-09-28 19:54:21] Status: Vergleiche Repo mit Home-Dir...
|
||||
[2026-09-28 19:54:28] ═══════════════════════════════════════════════════════════
|
||||
[2026-09-28 19:54:28] Modus: status
|
||||
[2026-09-28 19:54:28] ═══════════════════════════════════════════════════════════
|
||||
[2026-09-28 19:54:28] Status: Vergleiche Repo mit Home-Dir...
|
||||
[2026-09-28 19:55:07] ═══════════════════════════════════════════════════════════
|
||||
[2026-09-28 19:55:07] Modus: status
|
||||
[2026-09-28 19:55:07] ═══════════════════════════════════════════════════════════
|
||||
[2026-09-28 19:55:07] Status: Vergleiche Repo mit Home-Dir...
|
||||
[WARN] ✗ nur im Repo: .bash_oc_smart.sh (nicht im Home)
|
||||
[WARN] ✗ nur im Repo: .bash_oc_smart_aliases.sh (nicht im Home)
|
||||
[WARN] ≠ geändert im Home: .zshrc
|
||||
[OK] Status-Zusammenfassung:
|
||||
[2026-09-28 19:55:07] ═══════════════════════════════════════════════════════════
|
||||
[OK] Abgeschlossen
|
||||
[2026-09-28 19:55:11] ═══════════════════════════════════════════════════════════
|
||||
[2026-09-28 19:55:11] Modus: push
|
||||
[2026-09-28 19:55:11] DRY-RUN: Keine Änderungen werden vorgenommen
|
||||
[2026-09-28 19:55:11] ═══════════════════════════════════════════════════════════
|
||||
[2026-09-28 19:55:11] Push: Synchronisiere Repo-Dateien ins Home-Dir...
|
||||
[WARN] → update: .zshrc (Repo → Home) [lokale Änderung wird überschrieben]
|
||||
[OK] Push abgeschlossen: 0 kopiert, 0 Backups, 0 ausgelassen
|
||||
[2026-09-28 19:55:12] ═══════════════════════════════════════════════════════════
|
||||
[OK] DRY-RUN abgeschlossen (keine Änderungen)
|
||||
[2026-09-28 19:55:16] ═══════════════════════════════════════════════════════════
|
||||
[2026-09-28 19:55:16] Modus: push
|
||||
[2026-09-28 19:55:16] DRY-RUN: Keine Änderungen werden vorgenommen
|
||||
[2026-09-28 19:55:16] ═══════════════════════════════════════════════════════════
|
||||
[2026-09-28 19:55:16] Push: Synchronisiere Repo-Dateien ins Home-Dir...
|
||||
[DEBUG] ⊙ unverändert: .bash_aliases
|
||||
[DEBUG] ✚ neu: .bash_oc_smart.sh (Repo → Home)
|
||||
[DEBUG] ✚ neu: .bash_oc_smart_aliases.sh (Repo → Home)
|
||||
[DEBUG] ⊙ unverändert: .gitconfig
|
||||
[DEBUG] ⊙ unverändert: .gitconfig-architeq
|
||||
[DEBUG] ⊙ unverändert: .gitconfig-bc
|
||||
[DEBUG] ⊙ unverändert: .gitconfig-nettworks
|
||||
[DEBUG] ⊙ unverändert: .gitconfig-private
|
||||
[DEBUG] ⊙ unverändert: .gitconfig-ti8m
|
||||
[DEBUG] ⊙ unverändert: .gitignore_global
|
||||
[DEBUG] ⊙ unverändert: .npmrc
|
||||
[DEBUG] ⊙ unverändert: .p10k.zsh
|
||||
[DEBUG] ⊙ unverändert: .profile
|
||||
[DEBUG] ⊙ unverändert: .testcontainers.properties
|
||||
[WARN] → update: .zshrc (Repo → Home) [lokale Änderung wird überschrieben]
|
||||
[DEBUG] ⊙ unverändert: getsizes.sh
|
||||
[OK] Push abgeschlossen: 0 kopiert, 0 Backups, 0 ausgelassen
|
||||
[2026-09-28 19:55:16] ═══════════════════════════════════════════════════════════
|
||||
[OK] DRY-RUN abgeschlossen (keine Änderungen)
|
||||
[2026-09-28 19:55:22] ═══════════════════════════════════════════════════════════
|
||||
[2026-09-28 19:55:22] Modus: push
|
||||
[2026-09-28 19:55:22] ═══════════════════════════════════════════════════════════
|
||||
[2026-09-28 19:55:22] Push: Synchronisiere Repo-Dateien ins Home-Dir...
|
||||
[WARN] → update: .zshrc (Repo → Home) [lokale Änderung wird überschrieben]
|
||||
[2026-09-28 19:55:22] Backup erstellt: .zshrc (vor Push) → /Users/u241100/mac-home/.sync-backups/.zshrc.20260928_195522.backup
|
||||
[OK] Push abgeschlossen: 3 kopiert, 1 Backups, 0 ausgelassen
|
||||
[2026-09-28 19:55:22] ═══════════════════════════════════════════════════════════
|
||||
[OK] Abgeschlossen
|
||||
[2026-09-28 19:55:27] ═══════════════════════════════════════════════════════════
|
||||
[2026-09-28 19:55:27] Modus: status
|
||||
[2026-09-28 19:55:27] ═══════════════════════════════════════════════════════════
|
||||
[2026-09-28 19:55:27] Status: Vergleiche Repo mit Home-Dir...
|
||||
[OK] Status-Zusammenfassung:
|
||||
[2026-09-28 19:55:27] ═══════════════════════════════════════════════════════════
|
||||
[OK] Abgeschlossen
|
||||
[2026-09-28 19:57:29] ═══════════════════════════════════════════════════════════
|
||||
[2026-09-28 19:57:29] Modus: status
|
||||
[2026-09-28 19:57:29] ═══════════════════════════════════════════════════════════
|
||||
[2026-09-28 19:57:29] Status: Vergleiche Repo mit Home-Dir...
|
||||
[OK] Status-Zusammenfassung:
|
||||
[2026-09-28 19:57:29] ═══════════════════════════════════════════════════════════
|
||||
[OK] Abgeschlossen
|
||||
+27
-15
@@ -12,7 +12,8 @@
|
||||
# - Mehrere Modi für verschiedene Szenarien
|
||||
################################################################################
|
||||
|
||||
set -euo pipefail
|
||||
# Note: Removed 'set -euo pipefail' as it breaks while-read loops with subshells
|
||||
# We handle errors explicitly instead
|
||||
|
||||
# Farben
|
||||
RED='\033[0;31m'
|
||||
@@ -40,23 +41,30 @@ AUTO_BACKUP=true
|
||||
################################################################################
|
||||
|
||||
log() {
|
||||
echo -e "${BLUE}[$(date +'%Y-%m-%d %H:%M:%S')]${NC} $*" | tee -a "$LOG_FILE"
|
||||
echo -e "${BLUE}[$(date +'%Y-%m-%d %H:%M:%S')]${NC} $*"
|
||||
echo "[$(date +'%Y-%m-%d %H:%M:%S')] $*" >> "$LOG_FILE"
|
||||
}
|
||||
|
||||
error() {
|
||||
echo -e "${RED}[ERROR]${NC} $*" >&2 | tee -a "$LOG_FILE"
|
||||
echo -e "${RED}[ERROR]${NC} $*" >&2
|
||||
echo "[ERROR] $*" >> "$LOG_FILE"
|
||||
}
|
||||
|
||||
success() {
|
||||
echo -e "${GREEN}[OK]${NC} $*" | tee -a "$LOG_FILE"
|
||||
echo -e "${GREEN}[OK]${NC} $*"
|
||||
echo "[OK] $*" >> "$LOG_FILE"
|
||||
}
|
||||
|
||||
warn() {
|
||||
echo -e "${YELLOW}[WARN]${NC} $*" | tee -a "$LOG_FILE"
|
||||
echo -e "${YELLOW}[WARN]${NC} $*"
|
||||
echo "[WARN] $*" >> "$LOG_FILE"
|
||||
}
|
||||
|
||||
verbose() {
|
||||
[[ "$VERBOSE" == true ]] && echo -e "${BLUE}[DEBUG]${NC} $*" | tee -a "$LOG_FILE"
|
||||
if [[ "$VERBOSE" == true ]]; then
|
||||
echo -e "${BLUE}[DEBUG]${NC} $*"
|
||||
echo "[DEBUG] $*" >> "$LOG_FILE"
|
||||
fi
|
||||
}
|
||||
|
||||
################################################################################
|
||||
@@ -68,10 +76,10 @@ get_checksum() {
|
||||
if [[ -f "$file" ]]; then
|
||||
if command -v md5 &> /dev/null; then
|
||||
# macOS
|
||||
md5 -q "$file"
|
||||
md5 -q "$file" 2>/dev/null
|
||||
elif command -v md5sum &> /dev/null; then
|
||||
# Linux
|
||||
md5sum "$file" | awk '{print $1}'
|
||||
md5sum "$file" 2>/dev/null | awk '{print $1}'
|
||||
else
|
||||
error "Weder md5 noch md5sum verfügbar"
|
||||
return 1
|
||||
@@ -141,22 +149,26 @@ mode_status() {
|
||||
local identical=0
|
||||
local modified=0
|
||||
local repo_only=0
|
||||
local repo_file
|
||||
local basename_file
|
||||
local home_file
|
||||
local status
|
||||
|
||||
while IFS= read -r file; do
|
||||
local repo_file="$REPO_DIR/$file"
|
||||
local basename=$(basename "$file")
|
||||
local home_file="$HOME_DIR/$basename"
|
||||
repo_file="$REPO_DIR/$file"
|
||||
basename_file=$(basename "$file")
|
||||
home_file="$HOME_DIR/$basename_file"
|
||||
|
||||
check_file_status "$repo_file" "$home_file"
|
||||
local status=$?
|
||||
status=$?
|
||||
|
||||
case $status in
|
||||
0)
|
||||
verbose "✓ identisch: $basename"
|
||||
verbose "✓ identisch: $basename_file"
|
||||
((identical++))
|
||||
;;
|
||||
3)
|
||||
warn "≠ geändert im Home: $basename"
|
||||
warn "≠ geändert im Home: $basename_file"
|
||||
if [[ "$VERBOSE" == true ]]; then
|
||||
echo " Repo: $(get_checksum "$repo_file")"
|
||||
echo " Home: $(get_checksum "$home_file")"
|
||||
@@ -164,7 +176,7 @@ mode_status() {
|
||||
((modified++))
|
||||
;;
|
||||
4)
|
||||
warn "✗ nur im Repo: $basename (nicht im Home)"
|
||||
warn "✗ nur im Repo: $basename_file (nicht im Home)"
|
||||
((repo_only++))
|
||||
;;
|
||||
esac
|
||||
|
||||
Reference in new issue
Block a user