多维表格
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

427 lines
14 KiB

import Util from './util/Util';
import('colors');
import shell from 'shelljs';
// import AppMgr from './mgr/AppMgr';
import client from './mgr/Client';
// import ComponentMgr from './mgr/ComponentMgr';
// import MigrationMgr from './mgr/MigrationMgr';
// import ModelMgr from './mgr/ModelMgr';
// import OldNewMgr from './mgr/NewMgr';
// import InstantMgr from './mgr/InstantMgr';
// import PermissionsMgr from './mgr/PermissionsMgr';
// import SocialMgr from './mgr/SocialMgr';
// import DockerMgr from "./mgr/DockerMgr";
import NewMgr from './mgr/NewMgr';
// import TryMgr from "./mgr/TryMgr";
let cmdProcessedOnce = 0;
let cmdOriginalArgs = null;
class CliMgr {
public static async runCmd(str) {
shell.echo(`\nNow, executing command : ${str}\n\n`.blue);
if (shell.exec(str).code !== 0) {
shell.echo(`\n\nError running command internally\n\n\t"${str}"`.red);
shell.echo(`\nExiting...`.red);
shell.exit(1);
}
}
public static async process(args) {
cmdOriginalArgs = cmdOriginalArgs ? cmdOriginalArgs : args;
try {
if (args._ && args._.length) {
switch (args._[0]) {
case 'man':
if (args._.length > 1) {
Util.showHelpForCommand(args);
} else {
Util.showHelp(args);
}
process.exit(0);
break;
/**************** START : new project with apis creation ****************/
case 'n':
case 'new':
if (await NewMgr.getNewProjectInput(args)) {
if (args._[0] === 'gap') {
console.log('gRPC code generation is not yet supported.');
process.exit(0);
}
await client.requestSend(args);
} else {
process.exit(0);
}
break;
/**************** END : new project with apis creation ****************/
// /**************** START : new project with apis creation ****************/
// case 'nold':
// case 'newold':
// if (await NewMgr.getNewProjectInputOld(args)) {
// if (args._[0] === 'gap') {
// console.log('gRPC code generation is not yet supported.');
// process.exit(0)
// }
// await client.requestSend(args)
// } else {
// process.exit(0)
// }
//
// break;
//
// /**************** END : new project with apis creation ****************/
// /**************** START : try xc-instant with in-memory ****************/
// case 't':
// case 'try':
// await TryMgr.getProjectInput(args);
// process.exit(0)
// break;
//
// case 'sg':
// case 'sample.gql':
// case 'sample.graphql':
// await TryMgr.getProjectInput({_: ['sample', 'gql']});
// process.exit(0)
// break;
//
// case 'sr':
// case 'sample.rest':
// case 'sample':
// case 's':
// await TryMgr.getProjectInput({_: ['sample', 'rest']});
// process.exit(0)
// break;
//
// /**************** END : try xc-instant with in-memory ****************/
//
// /**************** START : new project with apis creation ****************/
// // case 'nold':
// // case 'newold':
// // if (await OldNewMgr.getNewProjectInput(args)) {
// // if (args._[0] === 'gap') {
// // console.log('gRPC code generation is not yet supported.');
// // process.exit(0)
// // }
// // await client.requestSend(args)
// // } else {
// // process.exit(0)
// // }
// //
// // break;
//
// /**************** END : new project with apis creation ****************/
//
//
// /**************** START : new project with apis creation ****************/
// case 'd':
// case 'docker':
// await DockerMgr.genDockerfile(args)
// break;
//
// /**************** END : new project with apis creation ****************/
//
// //
// // /**************** START : instant apis creation ****************/
// // case 'i':
// // case 'instant':
// // await InstantMgr.getNewProjectInput(args);
// // break;
// //
// // /**************** END : instant apis creation ****************/
// /**************** START : Init xc instant project ****************/
// case 'i':
// case 'init':
// await NewMgr.initProject(args);
// break;
//
// /**************** END : Init xc instant project ****************/
//
// /**************** START : apis creation ****************/
// case 'ga':
// case 'gar':
// case 'gen.apis':
// case 'gen.apis.rest':
// // console.log(`xc : Generating REST APIs`.green, args);
// await client.requestSend(args);
// break;
//
// case 'gag':
// case 'gen.apis.graphql':
// case 'gen.apis.gql':
// // console.log(`xc : Generating GraphQL APIs`.green);
// await client.requestSend(args);
// break;
// /**************** END : apis creation ****************/
//
//
// case 'gm':
// case 'gen.module':
// await client.requestSend(args);
// break;
//
// /**************** START : rest components scaffolding ****************/
// case 'gmr':
// case 'gen.module.router':
// await client.requestSend(args);
// break;
//
// case 'gmm':
// case 'gen.module.middleware':
// await client.requestSend(args);
// break;
//
// case 'gms':
// case 'gen.module.service':
// await client.requestSend(args);
// break;
// /**************** END : rest components scaffolding ****************/
//
//
// /**************** START : graphql components scaffolding ****************/
// case 'ggm':
// case 'gen.gql.module':
// await client.requestSend(args);
// break;
//
// case 'ggmr':
// case 'gen.gql.module.resolver':
// await client.requestSend(args);
// break;
//
// case 'ggmm':
// case 'gen.gql.module.middleware':
// await client.requestSend(args);
// break;
//
// case 'ggms':
// case 'gen.gql.module.service':
// await client.requestSend(args);
// break;
// /**************** END : graphql components scaffolding ****************/
//
//
// /**************** START : Migration stuff ****************/
// case 'db.migrate.init' :
// case 'dmi' :
// console.log('migration init', args);
// await MigrationMgr.init(args);
// process.exit(0);
// break;
//
// case 'db.migrate.sync' :
// case 'dms' :
// console.log('migration sync', args);
// await MigrationMgr.sync(args);
// process.exit(0);
// break;
//
// case 'db.migrate.list' :
// case 'dml' :
// console.log('migration list');
// await MigrationMgr.list(args);
// process.exit(0);
// break;
//
// case 'db.migrate.create' :
// case 'dmc' :
// console.log('migration create', args);
// await MigrationMgr.create(args);
// process.exit(0);
// break;
//
// case 'db.migrate.up' :
// case 'dmu' :
// console.log('migration create', args);
// await MigrationMgr.up(args);
// process.exit(0);
// break;
//
// case 'db.migrate.down' :
// case 'dmd' :
// console.log('migration down', args);
// await MigrationMgr.down(args);
// process.exit(0);
// break;
//
// case 'db.migrate.term' :
// case 'dmt' :
// console.log('migration init', args);
// await MigrationMgr.clean(args);
// process.exit(0);
// break;
//
// case 'db.migrate.sql.dump' :
// case 'dmsd' :
// console.log('migration meta dump', args);
// await client.requestSend(args);
// break;
// /**************** END : Migration stuff ****************/
//
//
// /**************** START : Meta stuff ****************/
//
// case 'meta.export' :
// case 'me' :
// console.log('meta export', args);
// if (!('env' in args)) {
// console.log(`Missing '${'env'.bold}' parameter`.red);
// process.exit(0);
// }
//
// await client.requestSend(args);
// break;
// case 'meta.import' :
// case 'mi' :
// console.log('meta import', args)
// if (!('env' in args)) {
// console.log(`Missing '${'env'.bold}' parameter`.red);
// process.exit(0);
// }
//
// await client.requestSend(args);
// break;
// case 'meta.reset' :
// case 'mr' :
// console.log('met reset', args)
// if (!('env' in args)) {
// console.log(`Missing '${'env'.bold}' parameter`.red);
// process.exit(0);
// }
//
// await client.requestSend(args);
// break;
// /**************** END : Meta stuff ****************/
//
//
// /**************** START : ACL stuff ****************/
// case 'permissions.set':
// case 'ps':
// await PermissionsMgr.set(args)
// process.exit(0);
// break;
// case 'permissions.get':
// case 'pg':
// await PermissionsMgr.get(args)
// process.exit(0);
// break;
// case 'permissions.role.add':
// case 'pra':
// await PermissionsMgr.userAdd(args)
// process.exit(0);
// break;
// case 'permissions.role.delete':
// case 'prd':
// await PermissionsMgr.userDelete(args)
// process.exit(0);
// break;
// case 'permissions.role.rename':
// case 'prr':
// await PermissionsMgr.userRename(args)
// process.exit(0);
// break;
// /**************** END : ACL stuff ****************/
//
// /**************** START : App stuff ****************/
// case 'app.install':
// case 'ai':
// await AppMgr.install(args);
// process.exit(0);
// break;
// case 'app.open':
// case 'ao':
// await AppMgr.open(args);
// process.exit(0);
// break;
//
// /**************** END : App stuff ****************/
//
// /**************** START : Component stuff ****************/
// case 'component.add':
// case 'ca':
// const prevComponentName = await ComponentMgr.add(args);
// if (prevComponentName) {
// args._.push(prevComponentName)
// await client.requestSend(args);
// } else {
// process.exit(0)
// }
// break;
//
// case 'component.rename':
// case 'cr':
// await ComponentMgr.rename(args);
// process.exit(0);
// break;
//
// case 'component.delete':
// case 'cd':
// await ComponentMgr.add(args);
// process.exit(0);
// break;
//
// /**************** END : Component stuff ****************/
//
//
// /**************** START : Social media stuff ****************/
// case 'share':
// await SocialMgr.shareSocial(args);
// process.exit(0);
// break;
//
// case 'noshare':
// await SocialMgr.setShareRules('dontPrompt', true);
// process.exit(0);
// break;
// /**************** END : Social media stuff ****************/
//
// /**************** START : Remove stuff ****************/
// case 'remove.model.backup':
// case 'rmb':
// await ModelMgr.removeModelBackups(args);
// process.exit(0);
// break;
//
// /**************** END : Remove stuff ****************/
//
// // case 'menu':
// // case 'm':
// // await Menu.prepareCmd(client, args);
// // // console.log(args);
// // await this.process(client, args);
// // break;
//
// case 'yelp':
// case 'y':
// Util.showHelp(args);
// process.exit(0)
// break;
default:
if (!cmdProcessedOnce) {
cmdProcessedOnce = 1;
// await this.process(Util.getShortVersion(args));
args._.unshift('new');
await this.process(args);
} else {
console.log(
`\nUnknown command. ${cmdOriginalArgs._[0]} -- please see help below`
);
Util.showHelp(cmdOriginalArgs);
process.exit(0);
}
break;
}
}
} catch (e) {
throw e;
}
}
}
export default CliMgr;