UNPKG

jmms

Version:

Jmms cli tools, Jmms is a java meta-micro-service framework

356 lines (334 loc) 9.94 kB
const pkg = require('../package.json'); const binName = Object.keys(pkg.bin)[0]; const commands = (name, cmdOptional) => { return { desc : "Executes " + name + " commands, type '" + binName + " " + name + " --help' for details", arg : { name: 'cmd', desc: 'The command of ' + name, required: !cmdOptional, type: String } }; } module.exports = { create: { desc: 'Creates a new project or other objects in the exists project!', childs: { api: { desc: 'Creates a new api project', arg: { name: 'name', desc: 'The name of project dir', required: false, type: String, default : 'api' } }, project: { desc: 'Creates a new api project', arg: { name: 'name', desc: 'The name of project', required: true, type: String } }, web: { desc: 'Create a new web project', arg: { name: 'name', desc: 'The name of project dir, default \'web\'!', required: false, default: 'web', type: String }, opts: { dev: { desc: 'Use dev version', type: Boolean, required: false }, api: { desc: 'The path of api', type: String, default: 'api' } } }, entity: { desc: 'Creates a new entity', arg: { name: 'name', desc: 'The name of entity', required: true, type: String } } /*, "client-api": { desc: "Create client api code", arg: { name: "name", desc: "The name of client-api", required: false, type: String } } */ } }, init: { desc: 'Init a new project at current directory!', self: true, childs: { pom: { desc: 'Creates a pom file at current directory', arg: { name: 'type', desc: 'The type of pom, one of [pom, module]', required: false, type: String } } } }, run : { desc: 'Run jmms app!', self: true, opts: { port: { desc: 'Specify the server port', alias: 'p', type: Number, required: false }, /* build: { desc: 'Build the project before running', alias: 'b', type: Boolean, required: false }, */ update: { desc: 'Update project dependencies', alias: 'u', type: Boolean, required: false }, profile: { desc: 'Specify the active profile', alias: 'P', type: String, required: false }, remote_debug: { desc: 'Enables remote debugging', alias: 'D', type: Boolean, required: false }, suspend: { desc: 'Suspend remote debugging', type: Boolean, required: false } }, childs: { "swagger-ui": { desc: 'Run swagger-ui only', opts: { port: { desc: 'Specify the port', alias: 'p', type: Number, required: false } } } } }, doc : { childs: { gen: { desc: 'Generates gitbook doc from swagger spec', arg: { name: 'file', desc: 'The file path or http url of swagger spce', required: false, type: String }, opts: { force: { desc: 'Force generate or update gitbook doc to an exists dir', alias: 'f', type: Boolean, required: false }, out: { desc: 'The output dir of gitbook doc, default is "./api-doc"', alias: 'o', type: String, required: false } } } } }, open : { "desc": "Open vscode from current directory!", arg: { name: 'ide', desc: 'The name of ide, [vscode, idea] supported!', required: false, default: 'vscode', type: String } }, update: { desc: 'Updates project dependencies' }, package: { desc: 'Creates an executable app!', opts: { update: { desc: 'Update project dependencies', alias: 'u', type: Boolean, required: false }, jsw: { desc: 'Package using jsw', type: Boolean, required: false } } }, clean: { desc: 'Clean and compiles project' }, db: { desc: "Run db commands", childs: { config: { desc: 'Configures the db connection' }, gen: { desc: 'Generates entity(s) from db, use db connection at config.json', arg: { name: 'tables', desc: 'The name of table(s), split by \',\'', required: false, type: String } }, drop : { desc: 'Drops all the schema objects and data in database' } } }, dev: { desc: "Run dev commands", childs: { reset: { desc: 'Drops db and reload' } } }, fake : { desc: "Generates fake data", arg: { name: 'rows', desc: 'The generate rows of every entities.', required: false, default: 10, type: Number }, opts: { "clean": { desc: 'Deletes all exists data before fake', type: Boolean, required: false } } }, test : { desc: "Run jmms test", /* arg: { name: 'rounds', desc: 'The rounds to run tests.', required: false, default: 1, type: Number }, */ opts: { "clean": { desc: 'Deletes all exists data before test', type: Boolean, required: false }, "skip-crud": { desc: 'Skips the generated crud test cases', type: Boolean, required: false }, "skip-gen": { desc: 'Skips the generated test cases', type: Boolean, required: false } } }, docker: { desc: 'Run docker command.', childs: { build: { desc: 'Build service to docker image' }, run: { desc: 'Run service as docker container', arg: { name: 'image', desc: 'The name of docker image', required: false, type: String } } } }, schema: { desc: "Run schema commands", childs: { gen: { desc: 'Generates db schema, use db connection at config.json', arg: { name: 'name', desc: 'The name of current generated version', required: false, type: String }, opts: { profile: { desc: 'Specify the active profile', alias: 'P', type: String, required: false }, full: { desc: 'Generates full schema only.', type: Boolean, required: false } } } } }, versions: { desc: 'List remote jmms versions.' }, //install: commands("install", true), //remove:commands("remove", true) };