create-guten-block
Version:
Create a WordPress Gutenberg Block plugin with Zero-Config #OCJS, Webpack, React, ES6/7/8/Next, ESLint, Babel, and more.
41 lines (35 loc) • 1.24 kB
JavaScript
/**
* Create Plugin Directory.
*
* @param {string} blockName The block name.
* @return {promise} promise resolved.
*/
;
const chalk = require('chalk');
const shell = require('shelljs');
const clearConsole = require('./consoleClear');
const directoryExists = require('directory-exists');
const createGitignore = require('./createGitignore');
module.exports = (blockName, blockDir) => {
// Check if the plugin dir is already presnet.
const dirAlreadyExist = directoryExists.sync(`./${blockName}`);
// If exists then exit.
if (dirAlreadyExist) {
clearConsole();
console.log('\n❌ ', chalk.black.bgRed(` A directory with this name already exists: ${blockName} \n`));
console.log(
` ${chalk.dim('Please move or delete it (maybe make a copy for backup) and run this command again.')}`
);
console.log(` ${chalk.dim('Or provide a different name for your block.')}`);
console.log(chalk.dim('\nFor example: \n'));
console.log(` ${chalk.dim('create-guten-block')} ${chalk.green('new-block-name')}\n`);
process.exit(1);
} else {
return new Promise(async resolve => {
// Where user is at the moment.
shell.mkdir('-p', blockName);
await createGitignore(blockDir);
resolve(true);
});
}
};