- Revised the Development-Workflow documentation to improve clarity on deployment strategies and testing procedures. - Added comprehensive instructions for deployment commands, including code syncing, frontend and backend builds, and service restarts. - Enhanced the SSH key management section to address authentication challenges. - Expanded the testing workflow to incorporate log checks and ISO build synchronization. - Updated the ISO build integration section to ensure all system-level changes are captured for future builds.
163 lines
6.5 KiB
Bash
Executable File
163 lines
6.5 KiB
Bash
Executable File
#!/bin/bash
|
||
# Archipelago Deep Cleanup Script
|
||
# Removes ALL development caches and build artifacts safely
|
||
# This is more aggressive than cleanup-mac.sh but 100% safe
|
||
|
||
set -e
|
||
|
||
echo "╔════════════════════════════════════════════════════════════════╗"
|
||
echo "║ Archipelago DEEP Cleanup ║"
|
||
echo "╚════════════════════════════════════════════════════════════════╝"
|
||
echo ""
|
||
echo "This will remove ALL caches and temporary files."
|
||
echo "Everything can be rebuilt when needed."
|
||
echo ""
|
||
|
||
TOTAL_SAVED=0
|
||
|
||
# Function to calculate and display savings
|
||
calc_savings() {
|
||
local path="$1"
|
||
if [ -e "$path" ]; then
|
||
local size=$(du -sk "$path" | cut -f1)
|
||
TOTAL_SAVED=$((TOTAL_SAVED + size))
|
||
fi
|
||
}
|
||
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo "PROJECT DIRECTORY CLEANUP"
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
|
||
# 1. Remove Rust build artifacts
|
||
if [ -d "core/target" ]; then
|
||
echo "🧹 Removing Rust build cache..."
|
||
calc_savings "core/target"
|
||
rm -rf core/target
|
||
echo " ✅ Removed core/target/"
|
||
fi
|
||
|
||
# 2. Remove node_modules (can be reinstalled with npm install)
|
||
if [ -d "neode-ui/node_modules" ]; then
|
||
echo "🧹 Removing node_modules (180 MB)..."
|
||
calc_savings "neode-ui/node_modules"
|
||
rm -rf neode-ui/node_modules
|
||
echo " ✅ Removed neode-ui/node_modules/"
|
||
echo " ℹ️ Run 'npm install' in neode-ui/ to restore"
|
||
fi
|
||
|
||
# 3. Remove local dist builds (built to remote server anyway)
|
||
if [ -d "neode-ui/dist" ]; then
|
||
echo "🧹 Removing local frontend builds..."
|
||
calc_savings "neode-ui/dist"
|
||
rm -rf neode-ui/dist
|
||
echo " ✅ Removed neode-ui/dist/"
|
||
fi
|
||
|
||
if [ -d "web/dist" ]; then
|
||
calc_savings "web/dist"
|
||
rm -rf web/dist
|
||
echo " ✅ Removed web/dist/"
|
||
fi
|
||
|
||
# 4. Remove .DS_Store files
|
||
echo "🧹 Removing .DS_Store files..."
|
||
find . -name ".DS_Store" -type f -delete 2>/dev/null || true
|
||
echo " ✅ Removed all .DS_Store files"
|
||
|
||
# 5. Remove ISO build artifacts
|
||
if [ -d "image-recipe/build" ]; then
|
||
echo "🧹 Removing ISO build artifacts..."
|
||
calc_savings "image-recipe/build"
|
||
rm -rf image-recipe/build
|
||
echo " ✅ Removed image-recipe/build/"
|
||
fi
|
||
|
||
# 6. Keep only the latest ISO
|
||
if [ -d "image-recipe/results" ]; then
|
||
ISO_COUNT=$(ls -1 image-recipe/results/*.iso 2>/dev/null | wc -l | tr -d ' ')
|
||
if [ "$ISO_COUNT" -gt 1 ]; then
|
||
echo "🧹 Cleaning old ISOs (keeping latest)..."
|
||
cd image-recipe/results
|
||
ls -t *.iso | tail -n +2 | while read iso; do
|
||
calc_savings "$iso"
|
||
rm "$iso"
|
||
done
|
||
cd ../..
|
||
echo " ✅ Kept latest ISO only"
|
||
fi
|
||
fi
|
||
|
||
# 7. Optimize Git repository
|
||
echo "🧹 Optimizing Git repository..."
|
||
BEFORE_GIT=$(du -sk .git | cut -f1)
|
||
git gc --aggressive --prune=now 2>&1 | grep -v "^Enumerating" | grep -v "^Counting" | head -5 || true
|
||
AFTER_GIT=$(du -sk .git | cut -f1)
|
||
GIT_SAVED=$((BEFORE_GIT - AFTER_GIT))
|
||
TOTAL_SAVED=$((TOTAL_SAVED + GIT_SAVED))
|
||
echo " ✅ Git repository optimized"
|
||
|
||
echo ""
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo "SYSTEM-WIDE CACHE CLEANUP"
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
|
||
# 8. Clean Cargo cache (keeps only essential files)
|
||
if [ -d ~/.cargo/registry ]; then
|
||
echo "🧹 Cleaning Cargo registry cache..."
|
||
calc_savings ~/.cargo/registry
|
||
cargo cache -a 2>/dev/null || rm -rf ~/.cargo/registry/cache ~/.cargo/registry/src 2>/dev/null || true
|
||
echo " ✅ Cleaned Cargo cache (~177 MB)"
|
||
fi
|
||
|
||
# 9. Clean npm cache
|
||
if [ -d ~/.npm ]; then
|
||
echo "🧹 Cleaning npm cache..."
|
||
calc_savings ~/.npm
|
||
npm cache clean --force 2>/dev/null || true
|
||
echo " ✅ Cleaned npm cache (~249 MB)"
|
||
fi
|
||
|
||
# 10. Clean Homebrew cache
|
||
if [ -d ~/Library/Caches/Homebrew ]; then
|
||
echo "🧹 Cleaning Homebrew cache..."
|
||
calc_savings ~/Library/Caches/Homebrew
|
||
brew cleanup 2>/dev/null || true
|
||
rm -rf ~/Library/Caches/Homebrew/* 2>/dev/null || true
|
||
echo " ✅ Cleaned Homebrew cache (~890 MB)"
|
||
fi
|
||
|
||
echo ""
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo "DOCKER DESKTOP (Manual Step)"
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
|
||
DOCKER_SIZE=$(du -sk ~/Library/Containers/com.docker.docker 2>/dev/null | cut -f1 || echo "0")
|
||
if [ "$DOCKER_SIZE" -gt 1000000 ]; then
|
||
DOCKER_GB=$((DOCKER_SIZE / 1024 / 1024))
|
||
echo "⚠️ Docker Desktop: ~${DOCKER_GB} GB"
|
||
echo " To remove: Open Docker Desktop → Settings → Troubleshoot → Uninstall"
|
||
echo " OR run: ./remove-docker.sh"
|
||
fi
|
||
|
||
echo ""
|
||
echo "╔════════════════════════════════════════════════════════════════╗"
|
||
echo "║ DEEP Cleanup Complete! ║"
|
||
echo "╚════════════════════════════════════════════════════════════════╝"
|
||
echo ""
|
||
|
||
SAVED_GB=$((TOTAL_SAVED / 1024 / 1024))
|
||
echo "💾 Total space saved: ~${SAVED_GB} GB"
|
||
echo ""
|
||
echo "✅ What's left (all you need):"
|
||
echo " - Source code only (no caches)"
|
||
echo " - Latest ISO file"
|
||
echo " - Documentation"
|
||
echo ""
|
||
echo "ℹ️ To restore development dependencies:"
|
||
echo " cd neode-ui && npm install"
|
||
echo ""
|
||
echo "🚀 Your workflow (unchanged):"
|
||
echo " ./scripts/deploy-to-target.sh --live"
|
||
echo " (builds remotely, no local dependencies needed)"
|
||
echo ""
|