blob2d
Version:
Typed Modular 2D Game Engine for Web
54 lines (43 loc) • 1.17 kB
JavaScript
const log = console.log;
const path = require('path');
const chalk = require('chalk');
const fs = require('fs-extra');
const args = parseArguments(process.argv.slice(2));
if (args?.cmd === 'create') {
log('📄 Creating project files...');
createProject().then(() => log('✨ Done'));
}
function createProject() {
const templateDir = path.resolve(__dirname, '../templates');
return copyTemplateFiles(templateDir, process.cwd());
}
function copyTemplateFiles(src, dest) {
return fs.copy(src, dest, {
filter: filterTemplateFile,
overwrite: false,
});
}
function filterTemplateFile(src, dest) {
if (fs.lstatSync(src).isFile()) {
if (fs.existsSync(dest)) {
log(`${chalk.red('exists')} ${formatTemplateFileName(src)}`);
} else {
log(`${chalk.green('created')} ${formatTemplateFileName(src)}`);
}
}
return true;
}
function formatTemplateFileName(filepath) {
return filepath.split('templates/')[1];
}
function parseArguments(args) {
const [cmd = ''] = args;
if (cmd !== 'create') {
log(`${chalk.red('error')} Command "${cmd}" not found.`);
return null;
}
return {
cmd,
};
}