UNPKG

create-app-setup

Version:

A CLI tool to quickly set up frontend & backend projects with various frameworks.

47 lines (46 loc) • 1.73 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); const Chalk_1 = require("./Chalk"); const copyTemplate = (props) => { const { sourceDir, destinationDir, projectName } = props; if (!fs_1.default.existsSync(sourceDir)) { console.log(Chalk_1.chalk.red.bold(`āŒ Error: Template not found `)); process.exit(1); } if (!fs_1.default.existsSync(destinationDir)) { fs_1.default.mkdirSync(destinationDir, { recursive: true }); } else { console.log(Chalk_1.chalk.redBright(`šŸ“‚ ${projectName} already exists`)); process.exit(1); } const items = fs_1.default.readdirSync(sourceDir); if (items.length === 0) { return; } items.forEach((item) => { const sourcePath = path_1.default.join(sourceDir, item); const destinationPath = path_1.default.join(destinationDir, item); try { if (fs_1.default.statSync(sourcePath).isDirectory()) { copyTemplate({ sourceDir: sourcePath, destinationDir: destinationPath, }); } else { fs_1.default.copyFileSync(sourcePath, destinationPath); } } catch (error) { console.log(Chalk_1.chalk.red(`āŒ Error ${item}: ${error.message}`)); } }); // console.log(chalk.green.bold("\nšŸŽ‰ Template copied successfully!")); }; exports.default = copyTemplate;