From fe681266b0c1539a3818c1f7dff1381c1268fb4d Mon Sep 17 00:00:00 2001 From: alf Date: Sat, 21 Jun 2025 20:51:18 +0000 Subject: [PATCH] README.md aktualisiert --- README.md | 51 ++++++--------------------------------------------- 1 file changed, 6 insertions(+), 45 deletions(-) diff --git a/README.md b/README.md index 764e191..6662d0f 100644 --- a/README.md +++ b/README.md @@ -13,52 +13,13 @@ mkdir Neu # Hier legst du temporär neue Dateien ab ~~~ ### pre-commit-hook einrichten ### -Siehe Datei "pre-commit" +Siehe Datei "pre-commit". Sie __muss__ im Verzeichnis Projektverzeichnis/.git/hooks mit dem Dateinamen "pre-commit" gespeichert werden. +Der Hook muss ausführbar gemacht werden: +~~~ +chmod +x .git/hooks/pre-commit +~~~ ### Das Cron-Script einrichten ### -Um automatisiert Dateien dem WORM-Speicher zuzuführen, werden sie im Verzeichnis "Neu" gespeichert (auch Unterverzeichnisse). Cron sorgt für die Übertragung der Dateien, die noch nicht im WORM-Speicher vorhanden sind. Hier das Script: -~~~ -#!/bin/bash - -GIT_REPO_PATH="/home/alf/MEINWORM" -NEW_FILES_DIR="Neu" -ARCHIVE_TARGET_DIR="Archiv" -LOG_FILE="/home/alf/archive_sync.log" # Pfad anpassen - -log_message() { echo "[$(date +"%Y-%m-%d %H:%M:%S")] $1" | tee -a "$LOG_FILE"; } - -log_message "--- Archive Sync Script Started ---" -cd "$GIT_REPO_PATH" || { log_message "ERROR: Could not change to Git repository directory. Exiting."; exit 1; } -mkdir -p "$ARCHIVE_TARGET_DIR" - -find "$NEW_FILES_DIR" -type f | while read FILE_PATH_IN_NEW -do - FILE_FULL_NAME=$(basename "$FILE_PATH_IN_NEW") - TARGET_FILE_PATH="$ARCHIVE_TARGET_DIR/$FILE_FULL_NAME" - - if git ls-files --error-unmatch -- "$TARGET_FILE_PATH" &>/dev/null; then - log_message " File '$FILE_FULL_NAME' already exists in '$ARCHIVE_TARGET_DIR/'. Skipping." - else - log_message " File '$FILE_FULL_NAME' is new to '$ARCHIVE_TARGET_DIR/'. Adding..." - cp "$FILE_PATH_IN_NEW" "$TARGET_FILE_PATH" - git add "$TARGET_FILE_PATH" - if ! git diff --cached --quiet --exit-code; then - git commit -m "Add new file: $FILE_FULL_NAME to archive" "$TARGET_FILE_PATH" || { - log_message " WARNING: Commit for '$FILE_FULL_NAME' failed. (Pre-commit hook active?)" - git restore --staged "$TARGET_FILE_PATH" - git restore "$TARGET_FILE_PATH" - } - if [ $? -eq 0 ]; then - log_message " Successfully committed '$FILE_FULL_NAME'." - # rm "$FILE_PATH_IN_NEW" # Optional: Originaldatei aus Neu/ löschen - fi - else - log_message " No changes staged for $FILE_FULL_NAME. Skipping commit for this file." - fi - fi -done -log_message "No new files committed. Skipping push." # Da kein Remote genutzt wird -log_message "--- Archive Sync Script Finished ---" -exit 0 +Um automatisiert Dateien dem WORM-Speicher zuzuführen, werden sie im Verzeichnis "Neu" gespeichert (auch Unterverzeichnisse). Cron sorgt für die Übertragung der Dateien, die noch nicht im WORM-Speicher vorhanden sind (sync_archive.sh). ~~~ Es gibt ein weiteres Script, bei dem bei Vorhandensein \ No newline at end of file