250 lines
6.3 KiB
Bash
Executable File
250 lines
6.3 KiB
Bash
Executable File
#!/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"
|
|
|