UNPKG

netcore-blueprint

Version:

A custom project blueprint

88 lines (69 loc) 2.16 kB
#!/usr/bin/env node const fs = require('fs'); const path = require('path'); const { buildReplaceMap, copyAndRenameFiles } = require('../lib/replacer'); // ======================= // Args // ======================= // Usage: // create-assistant BlogWriter // ======================= const newAssistantName = process.argv[2]; if (!newAssistantName) { console.error("❌ Usage: create-assistant <AssistantName>"); console.error(" Example: create-assistant BlogWriter"); process.exit(1); } // ======================= // Template source // ======================= const sourceAssistantName = "__ASSISTANT_NAME__"; const assistantsTemplateRoot = path.join(__dirname, "..", "Assistants"); const sourceAssistantPath = path.join( assistantsTemplateRoot, `${sourceAssistantName}` ); // ======================= // Destination // ======================= const destinationRoot = process.cwd(); // đang đứng tại root project const destinationAssistantPath = path.join( destinationRoot, "Assistants", `${newAssistantName}` ); // ======================= // Guards // ======================= if (!fs.existsSync(sourceAssistantPath)) { console.error(`❌ Source assistant not found: ${sourceAssistantPath}`); process.exit(1); } if (fs.existsSync(destinationAssistantPath)) { console.error(`❌ Assistant already exists: ${destinationAssistantPath}`); process.exit(1); } // ======================= // Replace Map // ======================= const replaceMap = buildReplaceMap({ sourceModuleName: sourceAssistantName, newModuleName: newAssistantName }); // Nếu bạn muốn rõ nghĩa hơn thì có thể đổi replacer thành: // buildReplaceMap({ // sourceName: sourceAssistantName, // newName: newAssistantName // }); // ======================= // Run // ======================= console.log(`📦 Creating assistant: ${newAssistantName}`); console.log(`📁 From template: ${sourceAssistantPath}`); console.log(`📁 To: ${destinationAssistantPath}`); copyAndRenameFiles( sourceAssistantPath, destinationAssistantPath, replaceMap ); console.log(`🎉 Assistant "${newAssistantName}" created successfully!`);