59 lines
2.0 KiB
Bash
Executable File
59 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# ╔═══════════════════════════════════════════════════════════════╗
|
|
# ║ POST-DEV PROTECT — Git + Vault Auto-Protect ║
|
|
# ║ Usage: ./post-dev-protect.sh "commit message" ║
|
|
# ║ Actions: vault gold → git add → commit → push ║
|
|
# ╚═══════════════════════════════════════════════════════════════╝
|
|
|
|
set -e
|
|
LOG=/opt/wevads/logs/post-dev-protect.log
|
|
VAULT=/opt/wevads/vault
|
|
REPO=/opt/wevads
|
|
TS="$(date '+%Y-%m-%d %H:%M:%S')"
|
|
MSG="${1:-AUTO-PROTECT $(date '+%Y%m%d-%H%M')}"
|
|
|
|
log() { echo "[$TS] $1" | tee -a "$LOG"; }
|
|
log "===== POST-DEV PROTECT START ====="
|
|
|
|
# 1. VAULT GOLD UPDATE
|
|
log "Step 1: Updating vault gold..."
|
|
UPDATED=0
|
|
cd "$REPO"
|
|
for f in $(git diff --name-only 2>/dev/null; git ls-files --others --exclude-standard 2>/dev/null); do
|
|
full="$REPO/$f"
|
|
[ -f "$full" ] || continue
|
|
base="$(basename "$f")"
|
|
ext="${base##*.}"
|
|
case "$ext" in
|
|
html|php|js|sh|css|py)
|
|
cp "$full" "$VAULT/${base}.gold" 2>/dev/null && UPDATED=$((UPDATED+1))
|
|
;;
|
|
esac
|
|
done
|
|
log " Vault: $UPDATED files updated"
|
|
cd "$VAULT" && md5sum *.gold > checksums.md5 2>/dev/null
|
|
CKCOUNT="$(wc -l < checksums.md5)"
|
|
log " Checksums: $CKCOUNT gold files"
|
|
|
|
# 2. GIT COMMIT + PUSH
|
|
log "Step 2: Git add + commit + push..."
|
|
cd "$REPO"
|
|
git add -A 2>/dev/null
|
|
STAGED="$(git diff --cached --name-only | wc -l)"
|
|
if [ "$STAGED" -gt 0 ]; then
|
|
git commit -m "$MSG" 2>&1 | tail -1
|
|
log " Committed: $STAGED files"
|
|
if git push origin main 2>&1 | tail -1; then
|
|
log " Pushed to GitHub"
|
|
else
|
|
log " Push FAILED"
|
|
fi
|
|
else
|
|
log " Nothing to commit"
|
|
fi
|
|
|
|
# 3. SUMMARY
|
|
log "===== POST-DEV PROTECT DONE ====="
|
|
log "Vault=$UPDATED gold | Git=$STAGED staged | $MSG"
|
|
echo "PROTECTED: vault=$UPDATED gold, git=$STAGED files"
|