UNPKG

@lvfarias/fl-cli

Version:
143 lines (140 loc) 7.84 kB
const minimist = require('minimist'); const exec = require('child_process').exec; const main = require('../examples/main'); const pages = require('../examples/pages'); const routes = require('../examples/routes'); const styles = require('../examples/styles'); const args = minimist(process.argv.slice(2)); function generate(type, name) { switch (type) { case 'main': const pathName = String(name).toLowerCase(); const pageTitle = String(name[0]).toLocaleUpperCase() + '' + String(name).split('').slice(1).join(''); exec('pwd', (err, stdout, stderr) => { if (err) return; const appName = stdout.split('/').slice(-1).join('').split('\n').join(''); exec(`mkdir lib`); exec(`mkdir lib/pages`); exec(`mkdir lib/pages/${pathName}`); let pageContent = pageDefault; pageContent = pageContent.split('APP_NAME').join(appName); pageContent = pageContent.split('PATH_NAME').join(pathName); pageContent = pageContent.split('PAGE_TITLE').join(pageTitle); pageContent = pageContent.split('VARIABLE_NAME').join(pageTitle); let styleContent = style; if (args.color) { styleContent = styleContent.split('VARIABLE_COLOR').join(args.color); } else { styleContent = styleContent.split('VARIABLE_COLOR').join('black'); } exec(`echo "${styleContent}" > lib/pages/${pathName}/style.dart`); exec(`echo "${pageContent}" > lib/pages/${pathName}/page.dart`); exec(`code lib/pages/${pathName}/page.dart`); }); break; // case 'page': // const pathName = String(name).toLowerCase(); // const pageTitle = String(name[0]).toLocaleUpperCase() + '' + String(name).split('').slice(1).join(''); // exec('pwd', (err, stdout, stderr) => { // if (err) return; // const appName = stdout.split('/').slice(-1).join('').split('\n').join(''); // exec(`mkdir lib`); // exec(`mkdir lib/pages`); // exec(`mkdir lib/pages/${pathName}`); // let pageContent = pageDefault; // pageContent = pageContent.split('APP_NAME').join(appName); // pageContent = pageContent.split('PATH_NAME').join(pathName); // pageContent = pageContent.split('PAGE_TITLE').join(pageTitle); // pageContent = pageContent.split('VARIABLE_NAME').join(pageTitle); // let styleContent = style; // if (args.color) { // styleContent = styleContent.split('VARIABLE_COLOR').join(args.color); // } else { // styleContent = styleContent.split('VARIABLE_COLOR').join('black'); // } // exec(`echo "${styleContent}" > lib/pages/${pathName}/style.dart`); // exec(`echo "${pageContent}" > lib/pages/${pathName}/page.dart`); // exec(`code lib/pages/${pathName}/page.dart`); // }); // break; // case 'page': // const pathName = String(name).toLowerCase(); // const pageTitle = String(name[0]).toLocaleUpperCase() + '' + String(name).split('').slice(1).join(''); // exec('pwd', (err, stdout, stderr) => { // if (err) return; // const appName = stdout.split('/').slice(-1).join('').split('\n').join(''); // exec(`mkdir lib`); // exec(`mkdir lib/pages`); // exec(`mkdir lib/pages/${pathName}`); // let pageContent = pageDefault; // pageContent = pageContent.split('APP_NAME').join(appName); // pageContent = pageContent.split('PATH_NAME').join(pathName); // pageContent = pageContent.split('PAGE_TITLE').join(pageTitle); // pageContent = pageContent.split('VARIABLE_NAME').join(pageTitle); // let styleContent = style; // if (args.color) { // styleContent = styleContent.split('VARIABLE_COLOR').join(args.color); // } else { // styleContent = styleContent.split('VARIABLE_COLOR').join('black'); // } // exec(`echo "${styleContent}" > lib/pages/${pathName}/style.dart`); // exec(`echo "${pageContent}" > lib/pages/${pathName}/page.dart`); // exec(`code lib/pages/${pathName}/page.dart`); // }); // break; // case 'page': // const pathName = String(name).toLowerCase(); // const pageTitle = String(name[0]).toLocaleUpperCase() + '' + String(name).split('').slice(1).join(''); // exec('pwd', (err, stdout, stderr) => { // if (err) return; // const appName = stdout.split('/').slice(-1).join('').split('\n').join(''); // exec(`mkdir lib`); // exec(`mkdir lib/pages`); // exec(`mkdir lib/pages/${pathName}`); // let pageContent = pageDefault; // pageContent = pageContent.split('APP_NAME').join(appName); // pageContent = pageContent.split('PATH_NAME').join(pathName); // pageContent = pageContent.split('PAGE_TITLE').join(pageTitle); // pageContent = pageContent.split('VARIABLE_NAME').join(pageTitle); // let styleContent = style; // if (args.color) { // styleContent = styleContent.split('VARIABLE_COLOR').join(args.color); // } else { // styleContent = styleContent.split('VARIABLE_COLOR').join('black'); // } // exec(`echo "${styleContent}" > lib/pages/${pathName}/style.dart`); // exec(`echo "${pageContent}" > lib/pages/${pathName}/page.dart`); // exec(`code lib/pages/${pathName}/page.dart`); // }); // break; // case 'page': // const pathName = String(name).toLowerCase(); // const pageTitle = String(name[0]).toLocaleUpperCase() + '' + String(name).split('').slice(1).join(''); // exec('pwd', (err, stdout, stderr) => { // if (err) return; // const appName = stdout.split('/').slice(-1).join('').split('\n').join(''); // exec(`mkdir lib`); // exec(`mkdir lib/pages`); // exec(`mkdir lib/pages/${pathName}`); // let pageContent = pageDefault; // pageContent = pageContent.split('APP_NAME').join(appName); // pageContent = pageContent.split('PATH_NAME').join(pathName); // pageContent = pageContent.split('PAGE_TITLE').join(pageTitle); // pageContent = pageContent.split('VARIABLE_NAME').join(pageTitle); // let styleContent = style; // if (args.color) { // styleContent = styleContent.split('VARIABLE_COLOR').join(args.color); // } else { // styleContent = styleContent.split('VARIABLE_COLOR').join('black'); // } // exec(`echo "${styleContent}" > lib/pages/${pathName}/style.dart`); // exec(`echo "${pageContent}" > lib/pages/${pathName}/page.dart`); // exec(`code lib/pages/${pathName}/page.dart`); // }); // break; default: console.log('invalid command'); break; } } module.exports = generate;