#!/bin/bash # Clean script for GNX Web Application - Prepares project for deployment # This script removes all cache files, build artifacts, and temporary files set -e echo "๐Ÿงน Cleaning GNX Web Application for deployment..." echo "" # Colors for output RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # Function to safely remove directories remove_dir() { if [ -d "$1" ]; then echo -e "${YELLOW}Removing: $1${NC}" rm -rf "$1" echo -e "${GREEN}โœ… Removed: $1${NC}" fi } # Function to safely remove files remove_file() { if [ -f "$1" ]; then echo -e "${YELLOW}Removing: $1${NC}" rm -f "$1" echo -e "${GREEN}โœ… Removed: $1${NC}" fi } # Function to find and remove files by pattern remove_pattern() { find . -name "$1" -type f -not -path "./.git/*" -not -path "./node_modules/*" 2>/dev/null | while read -r file; do echo -e "${YELLOW}Removing: $file${NC}" rm -f "$file" done echo -e "${GREEN}โœ… Cleaned: $1${NC}" } # Function to find and remove directories by pattern remove_dir_pattern() { find . -name "$1" -type d -not -path "./.git/*" -not -path "./node_modules/*" 2>/dev/null | while read -r dir; do echo -e "${YELLOW}Removing: $dir${NC}" rm -rf "$dir" done echo -e "${GREEN}โœ… Cleaned: $1${NC}" } echo "๐Ÿ“ฆ Step 1: Stopping Docker containers (if running)..." docker-compose down 2>/dev/null || true echo "" echo "๐Ÿ“ฆ Step 2: Removing Docker volumes (optional - uncomment if needed)..." # Uncomment the next line if you want to remove Docker volumes (WARNING: This deletes database data!) # docker-compose down -v 2>/dev/null || true echo "" echo "๐Ÿ“ฆ Step 3: Removing Docker build cache..." docker system prune -f --volumes 2>/dev/null || true echo "" echo "๐Ÿ Step 4: Cleaning Python artifacts..." # Remove Python cache directories remove_dir_pattern "__pycache__" # Remove Python compiled files remove_pattern "*.pyc" remove_pattern "*.pyo" remove_pattern "*.pyd" # Remove Python egg files remove_pattern "*.egg" remove_dir_pattern "*.egg-info" # Remove Python virtual environments remove_dir "backEnd/venv" remove_dir "frontEnd/venv" remove_dir ".venv" remove_dir "venv" remove_dir "env" remove_dir "ENV" # Remove Python build directories remove_dir "backEnd/build" remove_dir "backEnd/dist" remove_dir "frontEnd/build" remove_dir "frontEnd/dist" # Remove Python test artifacts remove_dir ".pytest_cache" remove_dir ".coverage" remove_dir "htmlcov" remove_dir ".tox" remove_dir ".mypy_cache" remove_file ".dmypy.json" remove_file "dmypy.json" echo "" echo "๐Ÿ“ฆ Step 5: Cleaning Node.js artifacts..." # Remove node_modules remove_dir "frontEnd/node_modules" # Remove Next.js build artifacts remove_dir "frontEnd/.next" remove_dir "frontEnd/out" remove_dir "frontEnd/build" remove_dir "frontEnd/.pnp" remove_file "frontEnd/.pnp.js" # Remove TypeScript build info remove_pattern "*.tsbuildinfo" remove_file "frontEnd/next-env.d.ts" # Remove package manager files remove_file "frontEnd/.yarn/install-state.gz" echo "" echo "๐Ÿ“ Step 6: Cleaning log files..." # Remove log files remove_pattern "*.log" remove_dir "backEnd/logs" remove_file "frontEnd/dev.log" remove_file "frontEnd/npm-debug.log*" remove_file "frontEnd/yarn-debug.log*" remove_file "frontEnd/yarn-error.log*" echo "" echo "๐Ÿ—„๏ธ Step 7: Cleaning database files..." # Remove SQLite databases (keep if you need them, but typically not for deployment) # Uncomment if you want to remove SQLite files # remove_file "backEnd/db.sqlite3" # remove_pattern "*.db" # remove_pattern "*.sqlite" # remove_pattern "*.sqlite3" # Remove migration marker files remove_file ".migrated_to_postgres" echo "" echo "๐Ÿ“ Step 8: Cleaning static files (will be regenerated on build)..." # Remove collected static files (they'll be regenerated) remove_dir "backEnd/staticfiles" echo "" echo "๐Ÿ’พ Step 9: Cleaning backup files..." # Remove backup files remove_pattern "*.backup" remove_pattern "*.bak" remove_pattern "*~" remove_pattern "*.swp" remove_pattern "*.swo" remove_dir "backups" echo "" echo "๐Ÿ–ฅ๏ธ Step 10: Cleaning IDE and OS files..." # Remove IDE directories remove_dir ".vscode" remove_dir ".idea" remove_dir "backEnd/.vscode" remove_dir "backEnd/.idea" remove_dir "frontEnd/.vscode" remove_dir "frontEnd/.idea" # Remove OS files remove_pattern ".DS_Store" remove_pattern "Thumbs.db" remove_pattern ".DS_Store?" echo "" echo "๐Ÿ” Step 11: Cleaning environment files (keeping examples)..." # Remove local env files (keep examples) remove_file ".env.local" remove_file ".env.development.local" remove_file ".env.test.local" remove_file ".env.production.local" remove_file "frontEnd/.env.local" remove_file "frontEnd/.env.development.local" remove_file "frontEnd/.env.test.local" remove_file "frontEnd/.env.production.local" # Note: We keep .env.production as it's needed for deployment echo -e "${YELLOW}โš ๏ธ Note: .env.production is kept (needed for deployment)${NC}" echo "" echo "๐Ÿ“ฆ Step 12: Cleaning other artifacts..." # Remove coverage directories remove_dir "coverage" remove_dir ".nyc_output" remove_dir "frontEnd/coverage" # Remove vercel directory remove_dir "frontEnd/.vercel" # Remove certificate files (if any) remove_pattern "*.pem" echo "" echo "๐Ÿงน Step 13: Final cleanup..." # Remove any remaining temporary files find . -name "*.tmp" -type f -not -path "./.git/*" 2>/dev/null | while read -r file; do remove_file "$file" done # Remove empty directories (optional - be careful with this) # find . -type d -empty -not -path "./.git/*" -not -path "./node_modules/*" -delete 2>/dev/null || true echo "" echo "โœ… Cleanup complete!" echo "" echo "๐Ÿ“‹ Summary:" echo " - Python cache files removed" echo " - Virtual environments removed" echo " - Node.js artifacts removed" echo " - Build artifacts removed" echo " - Log files removed" echo " - IDE/OS files removed" echo "" echo "โš ๏ธ Important notes:" echo " - .env.production is kept (needed for deployment)" echo " - Media files are kept (user uploads)" echo " - Docker volumes were NOT removed (database data preserved)" echo " - If you need a complete clean, uncomment Docker volume removal in the script" echo "" echo "๐Ÿš€ Project is now ready for deployment!" echo " Run: ./docker-start.sh to start the stack"