From 6fb16b9e2600b58d5416b56b4916820b33258973 Mon Sep 17 00:00:00 2001 From: Bojan Kucera Date: Sat, 7 Jun 2025 15:04:27 -0400 Subject: [PATCH] updated clean script --- package.json | 3 ++ scripts/clean.ps1 | 126 +++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 127 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 1eb6588..985c662 100644 --- a/package.json +++ b/package.json @@ -19,10 +19,13 @@ "lint": "turbo run lint", "start": "turbo run start", "clean": "turbo run clean", + "clean:cache": "powershell ./scripts/clean.ps1 -cache", "clean:dist": "powershell ./scripts/clean.ps1 -dist", "clean:modules": "powershell ./scripts/clean.ps1 -modules", "clean:all": "powershell ./scripts/clean.ps1 -all", + "clean:all:force": "powershell ./scripts/clean.ps1 -all -force", "clean:fresh": "powershell ./scripts/clean.ps1 -fresh", + "clean:fresh:force": "powershell ./scripts/clean.ps1 -fresh -force", "backtest": "turbo run backtest", "docker:start": "powershell ./scripts/docker.ps1 start", "docker:stop": "powershell ./scripts/docker.ps1 stop", diff --git a/scripts/clean.ps1 b/scripts/clean.ps1 index 79a5ebe..7a08897 100644 --- a/scripts/clean.ps1 +++ b/scripts/clean.ps1 @@ -1,8 +1,11 @@ param( [switch]$modules, [switch]$dist, + [switch]$cache, + [switch]$tsbuildinfo, [switch]$all, - [switch]$fresh + [switch]$fresh, + [switch]$force ) function Remove-DirectoriesByName { @@ -22,17 +25,117 @@ function Remove-DirectoriesByName { } } +function Remove-FilesByPattern { + param([string]$Pattern, [string]$Description) + + Write-Host "Removing $Description..." -ForegroundColor Blue + $files = Get-ChildItem -Path . -Name $Pattern -Recurse -File -ErrorAction SilentlyContinue + + if ($files.Count -gt 0) { + Write-Host "Found $($files.Count) $Description to remove" -ForegroundColor Gray + $files | ForEach-Object { + Remove-Item $_ -Force -ErrorAction SilentlyContinue + Write-Host " Removed: $_" -ForegroundColor Gray + } + } else { + Write-Host "No $Description found" -ForegroundColor Gray + } +} + Write-Host "Starting cleanup..." -ForegroundColor Yellow if ($all -or $fresh) { + if (-not $force) { + Write-Host "WARNING: This will remove ALL build artifacts, caches, dependencies, and temporary files!" -ForegroundColor Red + Write-Host "This includes: node_modules, dist, all caches, logs, databases, and lock files" -ForegroundColor Yellow + $confirmation = Read-Host "Are you sure you want to continue? (y/N)" + if ($confirmation -ne 'y' -and $confirmation -ne 'Y') { + Write-Host "Operation cancelled." -ForegroundColor Yellow + exit 0 + } + } + + Write-Host "=== NUCLEAR CLEAN: Removing EVERYTHING ===" -ForegroundColor Red + + # Dependencies and packages Remove-DirectoriesByName "node_modules" "node_modules directories" + + # Build outputs Remove-DirectoriesByName "dist" "dist directories" + Remove-DirectoriesByName "build" "build directories" + Remove-DirectoriesByName "lib" "lib directories" + Remove-DirectoriesByName "out" "out directories" + Remove-DirectoriesByName ".out" "build output directories" + + # Cache directories + Remove-DirectoriesByName ".turbo" "Turborepo cache directories" + Remove-DirectoriesByName ".next" "Next.js cache directories" + Remove-DirectoriesByName ".parcel-cache" "Parcel cache directories" + Remove-DirectoriesByName ".angular" "Angular CLI cache directories" + Remove-DirectoriesByName ".nuxt" "Nuxt.js cache directories" + Remove-DirectoriesByName ".vite" "Vite cache directories" + Remove-DirectoriesByName ".webpack" "Webpack cache directories" + Remove-DirectoriesByName ".rollup.cache" "Rollup cache directories" + + # Test and coverage + Remove-DirectoriesByName "coverage" "test coverage directories" + Remove-DirectoriesByName ".nyc_output" "NYC coverage directories" + Remove-DirectoriesByName ".jest" "Jest cache directories" + Remove-DirectoriesByName ".vitest" "Vitest cache directories" + + # Storybook + Remove-DirectoriesByName ".storybook-out" "Storybook build directories" + Remove-DirectoriesByName "storybook-static" "Storybook static directories" + + # Temporary and log directories + Remove-DirectoriesByName "tmp" "temporary directories" + Remove-DirectoriesByName "temp" "temp directories" + Remove-DirectoriesByName ".tmp" "hidden temp directories" + Remove-DirectoriesByName "logs" "log directories" + Remove-DirectoriesByName ".logs" "hidden log directories" + + # Project specific (from .gitignore) + Remove-DirectoriesByName ".data" "data directories" + Remove-DirectoriesByName ".backtest-results" "backtest result directories" + Remove-DirectoriesByName ".old" "old backup directories" + Remove-DirectoriesByName ".mongo" "MongoDB data directories" + Remove-DirectoriesByName ".chat" "chat directories" Write-Host "Removing lock files..." -ForegroundColor Blue Remove-Item -Path "bun.lockb" -Force -ErrorAction SilentlyContinue + Remove-Item -Path "package-lock.json" -Force -ErrorAction SilentlyContinue + Remove-Item -Path "yarn.lock" -Force -ErrorAction SilentlyContinue + Remove-Item -Path "pnpm-lock.yaml" -Force -ErrorAction SilentlyContinue Get-ChildItem -Path . -Name "bun.lockb" -Recurse -File | Remove-Item -Force -ErrorAction SilentlyContinue + Get-ChildItem -Path . -Name "package-lock.json" -Recurse -File | Remove-Item -Force -ErrorAction SilentlyContinue + Get-ChildItem -Path . -Name "yarn.lock" -Recurse -File | Remove-Item -Force -ErrorAction SilentlyContinue + Get-ChildItem -Path . -Name "pnpm-lock.yaml" -Recurse -File | Remove-Item -Force -ErrorAction SilentlyContinue - # Remove turbo clean since PowerShell already cleaned everything + # TypeScript and build files + Remove-FilesByPattern "*.tsbuildinfo" "TypeScript build info files" + Remove-FilesByPattern ".eslintcache" "ESLint cache files" + Remove-FilesByPattern ".stylelintcache" "Stylelint cache files" + Remove-FilesByPattern ".prettiercache" "Prettier cache files" + + # Database files + Remove-FilesByPattern "*.db" "database files" + Remove-FilesByPattern "*.sqlite" "SQLite database files" + Remove-FilesByPattern "*.sqlite3" "SQLite3 database files" + + # Log files + Remove-FilesByPattern "*.log" "log files" + Remove-FilesByPattern "npm-debug.log*" "npm debug logs" + Remove-FilesByPattern "yarn-debug.log*" "yarn debug logs" + Remove-FilesByPattern "yarn-error.log*" "yarn error logs" + Remove-FilesByPattern "lerna-debug.log*" "lerna debug logs" + + # OS generated files + Remove-FilesByPattern ".DS_Store" "macOS .DS_Store files" + Remove-FilesByPattern "Thumbs.db" "Windows thumbnail files" + Remove-FilesByPattern "ehthumbs.db" "Windows thumbnail cache files" + Remove-FilesByPattern "Desktop.ini" "Windows desktop files" + + Write-Host "=== NUCLEAR CLEAN COMPLETE ===" -ForegroundColor Red Write-Host "Cleanup complete - no need for turbo clean" -ForegroundColor Blue } elseif ($modules) { @@ -44,6 +147,25 @@ elseif ($modules) { } elseif ($dist) { Remove-DirectoriesByName "dist" "dist directories" + Remove-DirectoriesByName ".turbo" "Turborepo cache directories" + Remove-DirectoriesByName ".next" "Next.js cache directories" + Remove-DirectoriesByName ".parcel-cache" "Parcel cache directories" + Remove-DirectoriesByName ".angular" "Angular CLI cache directories" + + Remove-FilesByPattern "*.tsbuildinfo" "TypeScript build info files" + Remove-FilesByPattern ".eslintcache" "ESLint cache files" +} +elseif ($cache) { + Remove-DirectoriesByName ".turbo" "Turborepo cache directories" + Remove-DirectoriesByName ".next" "Next.js cache directories" + Remove-DirectoriesByName ".parcel-cache" "Parcel cache directories" + Remove-DirectoriesByName ".angular" "Angular CLI cache directories" + Remove-DirectoriesByName "coverage" "test coverage directories" + Remove-DirectoriesByName ".nyc_output" "NYC coverage directories" + Remove-FilesByPattern ".eslintcache" "ESLint cache files" +} +elseif ($tsbuildinfo) { + Remove-FilesByPattern "*.tsbuildinfo" "TypeScript build info files" } else { Write-Host "Running turbo clean..." -ForegroundColor Blue