daily-fieldcraft/scripts/archive-fieldcraft.sh

69 lines
1.7 KiB
Bash
Executable file

#!/bin/bash
# CONFIG
WORKDIR=$(pwd)
ARCHIVE_ROOT="$WORKDIR/.archive"
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
ARCHIVE_PATH="$ARCHIVE_ROOT/$TIMESTAMP"
ZIP_NAME="fieldcraft_snapshot_$TIMESTAMP.zip"
ZIP_PATH="$ARCHIVE_PATH/$ZIP_NAME"
# CREATE ARCHIVE DIRECTORY
mkdir -p "$ARCHIVE_PATH"
# EXCLUDE the archive itself and common junk
EXCLUDES="--exclude=.archive --exclude=.git --exclude='*.cache' --exclude='*.log'"
echo "🌀 Archiving fieldcraft structure at $TIMESTAMP..."
# COPY FULL STRUCTURE
rsync -av $EXCLUDES "$WORKDIR/" "$ARCHIVE_PATH/full_structure/" > /dev/null
# CREATE ZIP SNAPSHOT
cd "$WORKDIR"
zip -r "$ZIP_PATH" . -x ".archive/*" ".git/*" "*.cache" "*.log" > /dev/null
# GENERATE HASH
HASH=$(sha256sum "$ZIP_PATH" | awk '{ print $1 }')
# GENERATE README
cat <<EOF > "$ARCHIVE_PATH/README.md"
# 🗃️ Fieldcraft Snapshot Archive
**Timestamp:** $TIMESTAMP
**Archive Hash (SHA256):** \`$HASH\`
**Snapshot:** \`$ZIP_NAME\`
**Structure Copy:** \`full_structure/\`
---
## Purpose
This snapshot preserves the recursive state of the \`daily-fieldcraft\` working environment.
It ensures integrity, reproducibility, and a coherent ritual log of emergent thought structures.
Each snapshot includes:
- ✅ Full working directory at time of execution (excluding temp & junk)
- ✅ Timestamped zip snapshot
- ✅ SHA256 integrity hash
- ✅ Coherent README describing context and recursive logic
Use this to restore prior states, verify truth, or preserve fieldcraft evolution.
## How to Verify Integrity
Run the following command:
\`\`\`bash
sha256sum $ZIP_NAME
\`\`\`
Expected hash:
\`\`\`
$HASH
\`\`\`
EOF
echo "✅ Snapshot complete."
echo "📁 Archive location: $ARCHIVE_PATH"