diff --git a/packages/xo-cli/package.json b/packages/xo-cli/package.json index 5bfc92e04..7c2f8a9db 100644 --- a/packages/xo-cli/package.json +++ b/packages/xo-cli/package.json @@ -1,11 +1,22 @@ { "name": "xo-cli", "version": "0.1.1", + "license": "AGPL3", "description": "Basic CLI for Xen-Orchestra", - "author": "Julien Fontanet ", + "keywords": [ + "xo", + "xen-orchestra", + "xen", + "orchestra" + ], "homepage": "https://github.com/vatesfr/xo-cli", - "bugs": { - "url": "https://github.com/vatesfr/xo-cli" + "bugs": "https://github.com/vatesfr/xo-cli/issues", + "author": "Julien Fontanet ", + "preferGlobal": true, + "main": "./src/cli.js", + "directories": { + "bin": "./bin", + "man": "./man" }, "repository": { "type": "git", @@ -24,16 +35,11 @@ }, "devDependencies": { "chai": "^1.9.0", + "human-format": "^0.1.0", "mocha": "^1.18.0", "mocha-promise": "0.0.1" }, "scripts": { "test": "mocha cli.spec.js" - }, - "main": "cli.js", - "bin": { - "xo-cli": "bin/xo-cli" - }, - "preferGlobal": true, - "license": "AGPL3" + } } diff --git a/packages/xo-cli/cli.js b/packages/xo-cli/src/cli.js similarity index 87% rename from packages/xo-cli/cli.js rename to packages/xo-cli/src/cli.js index 502e1d945..192c707e4 100644 --- a/packages/xo-cli/cli.js +++ b/packages/xo-cli/src/cli.js @@ -76,7 +76,7 @@ module.exports = function (argv) { { prompts.push({ name: name, - message: def.prompt || def.description, + message: def.prompt || def.description || name, type: def.promptType || 'input', }); } @@ -167,6 +167,23 @@ module.exports = function (argv) { }).bind(); }); + registerCommand('list-commands', {}, function () { + return connect().then(function (xo) { + return xo.send('system.listMethods').then(JSON.stringify); + }); + }); + registerCommand('show-command', { + args: { + name: { + required: true, + }, + }, + }, function (opts) { + return connect().then(function (xo) { + return xo.send('system.methodSignature', {name: opts.name}).then(console.log); + }); + }); + registerCommand('whoami', { description: 'displays information about the current user', }, function () { @@ -186,7 +203,16 @@ module.exports = function (argv) { }); // TODO: handle global `--config FILE` option. - nomnom.parse(argv); + nomnom + .option('version', { + flag: true, + help: 'prints the current version of xo-cli', + callback: function () { + return 'xo-cli version '+ require('../package').version; + }, + }) + .parse(argv) + ; // Executes the selected command. Promise.try(command, [commandOpts]).then(function (value) { diff --git a/packages/xo-cli/config.js b/packages/xo-cli/src/config.js similarity index 100% rename from packages/xo-cli/config.js rename to packages/xo-cli/src/config.js diff --git a/packages/xo-cli/prompt.js b/packages/xo-cli/src/prompt.js similarity index 100% rename from packages/xo-cli/prompt.js rename to packages/xo-cli/src/prompt.js diff --git a/packages/xo-cli/xo.js b/packages/xo-cli/src/xo.js similarity index 100% rename from packages/xo-cli/xo.js rename to packages/xo-cli/src/xo.js