144 lines
3.1 KiB
Plaintext
144 lines
3.1 KiB
Plaintext
|
|
#!/usr/bin/env nu
|
||
|
|
|
||
|
|
# VAPORA Clean Script
|
||
|
|
# Phase 0: Clean build artifacts
|
||
|
|
# Follows NUSHELL_GUIDELINES.md - 17 rules
|
||
|
|
|
||
|
|
# Check if target directory exists
|
||
|
|
def has-target-dir []: bool {
|
||
|
|
("target" | path exists)
|
||
|
|
}
|
||
|
|
|
||
|
|
# Get size of target directory
|
||
|
|
def get-target-size []: int {
|
||
|
|
if (has-target-dir) {
|
||
|
|
let result = (do { du -sh target } | complete)
|
||
|
|
if ($result.exit_code == 0) {
|
||
|
|
# Parse output to get size
|
||
|
|
1 # Return 1 as placeholder (actual size calculation would require parsing)
|
||
|
|
} else {
|
||
|
|
0
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
0
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Clean cargo build artifacts
|
||
|
|
def clean-cargo []: record {
|
||
|
|
print "Cleaning cargo build artifacts..."
|
||
|
|
|
||
|
|
let result = (do { cargo clean } | complete)
|
||
|
|
|
||
|
|
if ($result.exit_code == 0) {
|
||
|
|
{
|
||
|
|
success: true,
|
||
|
|
error: null
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
{
|
||
|
|
success: false,
|
||
|
|
error: ($result.stderr | str trim)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Clean trunk build artifacts (frontend)
|
||
|
|
def clean-trunk []: record {
|
||
|
|
print "Cleaning trunk build artifacts..."
|
||
|
|
|
||
|
|
let dist_path = "crates/vapora-frontend/dist"
|
||
|
|
|
||
|
|
if ($dist_path | path exists) {
|
||
|
|
let result = (do { rm -rf $dist_path } | complete)
|
||
|
|
|
||
|
|
if ($result.exit_code == 0) {
|
||
|
|
{
|
||
|
|
success: true,
|
||
|
|
error: null
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
{
|
||
|
|
success: false,
|
||
|
|
error: ($result.stderr | str trim)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
{
|
||
|
|
success: true,
|
||
|
|
error: null
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Clean temporary files
|
||
|
|
def clean-temp []: record {
|
||
|
|
print "Cleaning temporary files..."
|
||
|
|
|
||
|
|
let temp_patterns = [
|
||
|
|
"**/*.tmp",
|
||
|
|
"**/.DS_Store",
|
||
|
|
"**/Thumbs.db"
|
||
|
|
]
|
||
|
|
|
||
|
|
# Note: glob cleanup would go here in production
|
||
|
|
{
|
||
|
|
success: true,
|
||
|
|
error: null
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Main clean function
|
||
|
|
def main [
|
||
|
|
--all = false # Clean all artifacts including cargo
|
||
|
|
--temp = false # Clean only temporary files
|
||
|
|
]: void {
|
||
|
|
print "=== VAPORA Clean ==="
|
||
|
|
print ""
|
||
|
|
|
||
|
|
if $temp {
|
||
|
|
# Clean only temp files
|
||
|
|
let result = (clean-temp)
|
||
|
|
|
||
|
|
if $result.success {
|
||
|
|
print ""
|
||
|
|
print "✓ Temporary files cleaned"
|
||
|
|
} else {
|
||
|
|
print $"ERROR: ($result.error)"
|
||
|
|
exit 1
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
# Clean cargo artifacts
|
||
|
|
let cargo_result = (clean-cargo)
|
||
|
|
|
||
|
|
if (not $cargo_result.success) {
|
||
|
|
print $"ERROR: ($cargo_result.error)"
|
||
|
|
exit 1
|
||
|
|
}
|
||
|
|
print "✓ Cargo artifacts cleaned"
|
||
|
|
|
||
|
|
# Clean trunk artifacts
|
||
|
|
let trunk_result = (clean-trunk)
|
||
|
|
|
||
|
|
if (not $trunk_result.success) {
|
||
|
|
print $"ERROR: ($trunk_result.error)"
|
||
|
|
exit 1
|
||
|
|
}
|
||
|
|
print "✓ Trunk artifacts cleaned"
|
||
|
|
|
||
|
|
# Clean temp if --all
|
||
|
|
if $all {
|
||
|
|
let temp_result = (clean-temp)
|
||
|
|
|
||
|
|
if (not $temp_result.success) {
|
||
|
|
print $"ERROR: ($temp_result.error)"
|
||
|
|
exit 1
|
||
|
|
}
|
||
|
|
print "✓ Temporary files cleaned"
|
||
|
|
}
|
||
|
|
|
||
|
|
print ""
|
||
|
|
print "=== Clean Complete ==="
|
||
|
|
}
|
||
|
|
}
|