mirror of https://github.com/nocodb/nocodb
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
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;
|
|
|