UNPKG

waw-dev

Version:

[waw](https://webart.work) is the open-source web, mobile and desktop app development framework that makes it easy to build top quality web apps with web technologies.

84 lines 2.78 kB
const fs = require('fs'); const readline = require('readline').createInterface({ input: process.stdin, output: process.stdout }); /* * Create new part */ const cname = function(text){ return text.toString().charAt(0).toUpperCase() + text.toString().substr(1).toLowerCase(); } const rpl = function(text, from, to){ return text.split(from).join(to); } const new_part = function(params) { if (!fs.existsSync(process.cwd()+'/config.json')) { console.log('You are located not in waw project'); process.exit(0); } if(!params.new_part) params.new_part={}; if(!params.new_part.name){ if(params.argv.length){ if (fs.existsSync(process.cwd()+'/server/'+params.argv[0].toLowerCase())) { console.log('This part already exists in current project'); process.exit(0); }else{ params.new_part.name = params.argv[0]; } }else{ return readline.question('Provide name for the part you want to create: ', function(answer){ if(answer){ if (fs.existsSync(process.cwd()+'/'+answer.toLowerCase())) { console.log('This part already exists in current project'); }else{ params.new_part.name = answer; } }else{ console.log('Please type your project name'); } new_part(params); }); } } let folder = process.cwd()+'/server/'+params.new_part.name.toLowerCase(); if(params.argv.length > 1){ fs.mkdirSync(folder, { recursive: true }); let repo = params.git(folder); repo.init(function(){ repo.addRemote('origin', params.argv[1], function(err){ repo.fetch('--all', function(err){ let branch = 'master'; if(params.argv.length>2){ branch = params.argv[2]; } repo.reset('origin/'+branch, err=>{ console.log('Part has been created'); process.exit(1); }); }); }); }); }else{ fs.mkdirSync(folder, { recursive: true }); // index.js fs.writeFileSync(folder+'/index.js', `module.exports = function(waw) {\n\t// add your router code\n};`, 'utf8'); // part.json data = fs.readFileSync(__dirname+'/part/part.json', 'utf8'); data = rpl(data, 'CNAME', cname(params.new_part.name)); data = rpl(data, 'NAME', params.new_part.name.toLowerCase()); fs.writeFileSync(folder+'/part.json', data, 'utf8'); // schema.js data = fs.readFileSync(__dirname+'/part/schema.js', 'utf8'); data = rpl(data, 'CNAME', cname(params.new_part.name)); data = rpl(data, 'NAME', params.new_part.name.toLowerCase()); fs.writeFileSync(folder+'/schema.js', data, 'utf8'); console.log('Part has been created'); process.exit(1); } }; module.exports.add = new_part; module.exports.a = new_part; /* * End of runner */