UNPKG

@wuchuheng/setup

Version:

CLI tool to initialize project with common configuration files

60 lines (49 loc) 1.52 kB
#!/usr/bin/env node // 1. Input Processing // 1.1 Import required modules const fs = require("fs"); const path = require("path"); // 1.2 Get the current working directory const targetDir = process.cwd(); // 2. Logic Handling // 2.1 Define source and destination paths const sourceDir = path.join(__dirname, ".."); const filesToCopy = [ ".gitattributes", ".editorconfig", ".vscode/extensions.json", ".vscode/settings.json", ".vscode/mcp.json", ".clinerules/base_rules.md", ".github/copilot-instructions.md", ]; // 2.2 Copy files function function copyFiles() { filesToCopy.forEach((file) => { const destPath = path.join(targetDir, file); const sourcePath = path.join(sourceDir, file); // 2.2.1 Check if source file exists if (fs.existsSync(sourcePath)) { // 2.2.2 Create destination directory if it doesn't exist const destDir = path.dirname(destPath); if (!fs.existsSync(destDir)) { fs.mkdirSync(destDir, { recursive: true }); } // 2.2.3 Copy the file fs.copyFileSync(sourcePath, destPath); console.log(`✅ Copied ${file} to ${targetDir}`); } else { console.warn(`⚠️ Source file ${file} not found`); } }); } // 3. Output // 3.1 Execute the copy operation try { console.log("🚀 Starting project initialization..."); copyFiles(); console.log("✨ Project initialization completed successfully!"); } catch (error) { console.error("❌ Error during initialization:", error.message); process.exit(1); }