38 lines
1.1 KiB
Bash
Executable File
38 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
||
cd "$(dirname "$0")"
|
||
|
||
LOGFILE="archiv.log"
|
||
|
||
log() {
|
||
local TIMESTAMP
|
||
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
|
||
echo "[$TIMESTAMP] $1" | tee -a "$LOGFILE"
|
||
}
|
||
|
||
log "🔄 Starte Wiederherstellung von Archiv-Dateien..."
|
||
|
||
# Alle geänderten oder gelöschten Dateien (im Arbeitsverzeichnis oder Index)
|
||
changed_files=$(git diff --name-only Archiv)
|
||
staged_files=$(git diff --cached --name-only Archiv)
|
||
|
||
all_files=$(echo -e "$changed_files\n$staged_files" | sort -u)
|
||
|
||
if [[ -z "$all_files" ]]; then
|
||
log "ℹ️ Keine Änderungen an Archiv-Dateien gefunden."
|
||
else
|
||
for file in $all_files; do
|
||
if [[ ! -f "$file" ]]; then
|
||
# Datei wurde gelöscht -> Wiederherstellen
|
||
log "⏪ Stelle gelöschte Datei '$file' wieder her"
|
||
git restore --staged "$file"
|
||
git restore "$file"
|
||
else
|
||
# Datei existiert (modifiziert) -> zurücksetzen
|
||
log "⏪ Setze geänderte Datei '$file' zurück"
|
||
git restore --staged "$file"
|
||
git restore "$file"
|
||
fi
|
||
done
|
||
log "✅ Alle Änderungen an Archiv-Dateien wurden rückgängig gemacht."
|
||
fi
|