#!/usr/bin/env node import {exec} from 'child_process'; import config from 'config'; import Generator from "yeoman-generator"; const isDev = process.env.NODE_ENV === 'development' || (config.has('isDev') && config.get('isDev')); // Check README file in case you get "missing files" error. const modulePath = isDev ? '' : 'node_modules/create-block-dev-tool/'; const blockName = config.has('blockName') ? config.get('blockName') : 'development'; class buildGenerator extends Generator { async prompting() { this.data = await this.prompt([ { type: "list", name: "platform", message: "Choose Platform", choices: ['WordPress', 'Hubspot', 'Hubspot Email', 'JavaScript', 'PHP'], default: 'WordPress' } ]) } writing() { new Promise((resolve => { if (['WordPress', 'PHP'].includes(this.data.platform)) { const backPath = modulePath ? modulePath.substr(-1).split('/').map(() => '..').join('/') : ''; exec(`cd ${modulePath}platforms/php && composer install && php build.php '${blockName}' '${backPath}'`, function (error, stdout) { console.log(stdout); resolve(); }); } else if (this.data.platform === 'Hubspot') { console.log('Coming soon...'); resolve(); } else { resolve(); } })) .then(() => { console.log('--------------------\nDone!'); }); } } import yeoman from 'yeoman-environment'; const build = new buildGenerator([], {env: yeoman.createEnv()}, {}); build.run().then(() => null);