updated clean script

This commit is contained in:
Bojan Kucera 2025-06-07 15:04:27 -04:00
parent b3b4dee8bc
commit 6fb16b9e26
2 changed files with 127 additions and 2 deletions

View file

@ -19,10 +19,13 @@
"lint": "turbo run lint", "lint": "turbo run lint",
"start": "turbo run start", "start": "turbo run start",
"clean": "turbo run clean", "clean": "turbo run clean",
"clean:cache": "powershell ./scripts/clean.ps1 -cache",
"clean:dist": "powershell ./scripts/clean.ps1 -dist", "clean:dist": "powershell ./scripts/clean.ps1 -dist",
"clean:modules": "powershell ./scripts/clean.ps1 -modules", "clean:modules": "powershell ./scripts/clean.ps1 -modules",
"clean:all": "powershell ./scripts/clean.ps1 -all", "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": "powershell ./scripts/clean.ps1 -fresh",
"clean:fresh:force": "powershell ./scripts/clean.ps1 -fresh -force",
"backtest": "turbo run backtest", "backtest": "turbo run backtest",
"docker:start": "powershell ./scripts/docker.ps1 start", "docker:start": "powershell ./scripts/docker.ps1 start",
"docker:stop": "powershell ./scripts/docker.ps1 stop", "docker:stop": "powershell ./scripts/docker.ps1 stop",

View file

@ -1,8 +1,11 @@
param( param(
[switch]$modules, [switch]$modules,
[switch]$dist, [switch]$dist,
[switch]$cache,
[switch]$tsbuildinfo,
[switch]$all, [switch]$all,
[switch]$fresh [switch]$fresh,
[switch]$force
) )
function Remove-DirectoriesByName { 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 Write-Host "Starting cleanup..." -ForegroundColor Yellow
if ($all -or $fresh) { 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" Remove-DirectoriesByName "node_modules" "node_modules directories"
# Build outputs
Remove-DirectoriesByName "dist" "dist directories" 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 Write-Host "Removing lock files..." -ForegroundColor Blue
Remove-Item -Path "bun.lockb" -Force -ErrorAction SilentlyContinue 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 "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 Write-Host "Cleanup complete - no need for turbo clean" -ForegroundColor Blue
} }
elseif ($modules) { elseif ($modules) {
@ -44,6 +147,25 @@ elseif ($modules) {
} }
elseif ($dist) { elseif ($dist) {
Remove-DirectoriesByName "dist" "dist directories" 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 { else {
Write-Host "Running turbo clean..." -ForegroundColor Blue Write-Host "Running turbo clean..." -ForegroundColor Blue