#!/usr/bin/env node import { promises as fs } from "fs"; import path from "path"; import { rimraf } from "rimraf"; // Parse command line arguments const args = process.argv.slice(2); const DRY_RUN = args.includes("--dry-run"); const VERBOSE = args.includes("--verbose"); // Configuration - use the same paths as in fetch-content.mts const CONTENT_DIR = path.join(process.cwd(), "content"); const PUBLIC_DIR = path.join(process.cwd(), "public"); const LOCAL_BLOG_DIR = path.join(CONTENT_DIR, "blogs"); const LOCAL_BLOG_IMAGES_DIR = path.join(PUBLIC_DIR, "blog"); /** * Checks if a directory exists */ async function directoryExists(directory: string): Promise { try { const stats = await fs.stat(directory); return stats.isDirectory(); } catch (error) { return false; } } /** * Removes a directory and all its contents */ async function removeDirectory(directory: string): Promise { if (DRY_RUN) { console.log(`[DRY RUN] Would remove directory: ${directory}`); return; } try { await rimraf(directory); console.log(`Removed directory: ${directory}`); } catch (error) { console.error(`Error removing directory ${directory}:`, error); throw error; } } /** * Cleans up the blog content and images */ async function cleanupContent(): Promise { console.log("Starting content cleanup..."); if (DRY_RUN) { console.log("*** DRY RUN MODE - No files will be deleted ***"); } try { // Check and clean up blog directory if (await directoryExists(LOCAL_BLOG_DIR)) { console.log(`Found blog directory: ${LOCAL_BLOG_DIR}`); await removeDirectory(LOCAL_BLOG_DIR); } else if (VERBOSE) { console.log(`Blog directory does not exist: ${LOCAL_BLOG_DIR}`); } // Check and clean up blog images directory if (await directoryExists(LOCAL_BLOG_IMAGES_DIR)) { console.log(`Found blog images directory: ${LOCAL_BLOG_IMAGES_DIR}`); await removeDirectory(LOCAL_BLOG_IMAGES_DIR); } else if (VERBOSE) { console.log( `Blog images directory does not exist: ${LOCAL_BLOG_IMAGES_DIR}`, ); } console.log("Content cleanup completed successfully!"); } catch (error) { console.error("Error during cleanup:", error); process.exit(1); } } // Run the script cleanupContent();