sails-application-generator
Version:
command line tool
143 lines (140 loc) • 4.43 kB
JavaScript
var program = require('commander');
var fs = require('fs');
var cmd=require('node-cmd');
program
.version('0.0.4', '-v, --version')
.option('new, new <projectName>','project name')
.option('controller, controller <controllerName>','controllername')
.option('model, model <modelName>','modelName')
.option('service, service <serviceName>','serviceName')
.option('policies, policies <policiesName>','policiesName')
.option('--config , --config <config>','database name')
.parse(process.argv);
if(program.new ){
let fileName=program.new;
fs.mkdir(fileName,function(err){
if(err){
console.log('folder name already exists');
} else{
process.chdir(fileName);
cmd.get(
`git clone https://github.com/praveen4554/sails-pluggable.git .`,
function(err, data, stderr){
if (!err) {
console.log('sag project succesfully created')
} else {
console.log('error', err);
return;
}
}
);
console.log(process.cwd());
console.log('folder created');
}
}
);
}else if(program.controller){
console.log(process.argv.length);
let controller_name = program.controller;
let fileContent="import ResponseUtils = require('../helper/ResponseUtils');\n"+
"export function "+ controller_name+"Controller(req: any, res: any, next: Function): any { \n \n"+
"}";
let filepath = './api/controllers/'+controller_name+'Controller.ts';
fs.open(filepath,'wx',(err,fd) =>{
if(err){
if(err.code === 'EEXIST'){
console.log('Controller with the given name '+controller_name+'already exists');
return;
}
}
fs.writeFile(filepath, fileContent, (err) => {
if (err){
console.log('you are in wrong path');
}else{
console.log("controller created succesfully");
}
});
});
}else if(program.service){
let service_name = program.service;
let fileContent="export function "+ service_name+"Service(): any { \n \n"+
"}";
let filepath = './api/services/'+service_name+'Service.ts';
fs.open(filepath,'wx',(err,fd) =>{
if(err){
if(err.code === 'EEXIST'){
console.log('Service with the given name '+service_name+'already exists');
return;
}
}
fs.writeFile(filepath, fileContent, (err) => {
if (err){
console.log('you are in wrong path');
}else{
console.log("service created succesfully");
}
});
});
}else if(program.policies ){
let policies_name = program.policies;
let fileContent="module.exports = function (req, res, next) { \n \n"+
"}";
let filepath = './api/policies/'+policies_name+'Policy.js';
fs.open(filepath,'wx',(err,fd) =>{
if(err){
if(err.code === 'EEXIST'){
console.log('Policies with the given name '+policies_name+'already exists');
return;
}
}
fs.writeFile(filepath, fileContent, (err) => {
if (err){
console.log('you are in wrong path');
}else{
console.log("service created succesfully");
}
});
});
}else if(program.model){
let model_name = program.model;
let fileContent="module.exports = { \n "+
" attributes: { \n \n"+
"}\n"+
"};";
let filepath = './api/models/'+model_name+'.js';
fs.open(filepath,'wx',(err,fd) =>{
if(err){
if(err.code === 'EEXIST'){
console.log('Model with the given name '+model_name+'already exists');
return;
}
}
fs.writeFile(filepath, fileContent, (err) => {
if (err){
console.log('you are in wrong path');
}else{
console.log("model created succesfully");
}
});
});
}else if(program.config){
if(process.argv.length > 5 || process.argv[3] != 'db_name')
console.log('The options which you provided is wrong. Try to use helper command sag -h or sag --help ');
else{
var db_name = process.argv[4];
fs.readFile('./config/connections.js', 'utf8', function (err,data) {
if (err) {
return console.log('you are in wrong path');
}
var result = data.replace(/(database(.*))/g, 'database:'+db_name+',');
fs.writeFile('./config/connections.js', result, 'utf8', function (err) {
if (err) return console.log('you are in wrong path');
else
console.log('database name updated');
});
});
}
}else{
console.log('The options which you provided is wrong. Try to use helper command sag -h or sag --help ');
}