@lvfarias/fl-cli
Version:
Flutter CLI
143 lines (140 loc) • 7.84 kB
JavaScript
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;