create-app-setup
Version:
A CLI tool to quickly set up frontend & backend projects with various frameworks.
47 lines (46 loc) ⢠1.73 kB
JavaScript
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;
;