UNPKG

netcore-blueprint

Version:

A custom project blueprint

71 lines (53 loc) 1.79 kB
#!/usr/bin/env node const fs = require('fs'); const path = require('path'); const { buildReplaceMap, copyAndRenameFiles } = require('../lib/replacer'); // ======================= // Args // ======================= // Usage: // create-module Product // ======================= const newModuleName = process.argv[2]; if (!newModuleName) { console.error("❌ Usage: create-module <ModuleName>"); console.error(" Example: create-module Product"); process.exit(1); } // ======================= // Template source // ======================= const sourceModuleName = "__MODULE__"; const modulesTemplateRoot = path.join(__dirname, "..", "Modules"); const sourceModulePath = path.join(modulesTemplateRoot, `${sourceModuleName}Module`); // ======================= // Destination // ======================= const destinationRoot = process.cwd(); const destinationModulePath = path.join(destinationRoot, `${newModuleName}`); // ======================= // Guards // ======================= if (!fs.existsSync(sourceModulePath)) { console.error(`❌ Source module not found: ${sourceModulePath}`); process.exit(1); } if (fs.existsSync(destinationModulePath)) { console.error(`❌ Destination module already exists: ${destinationModulePath}`); process.exit(1); } // ======================= // Replace Map // ======================= const replaceMap = buildReplaceMap({ sourceModuleName, newModuleName }); console.log(`📦 Creating module: ${newModuleName}`); console.log(`📁 From template: ${sourceModulePath}`); console.log(`📁 To: ${destinationModulePath}`); // ======================= // Run // ======================= copyAndRenameFiles(sourceModulePath, destinationModulePath, replaceMap); console.log(`🎉 Module "${newModuleName}" created successfully!`);