You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by an...@apache.org on 2013/07/17 02:19:14 UTC
git commit: updated cli interface
Updated Branches:
refs/heads/plugman-registry 8dd5a1b7c -> 241031d26
updated cli interface
Project: http://git-wip-us.apache.org/repos/asf/cordova-plugman/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugman/commit/241031d2
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugman/tree/241031d2
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugman/diff/241031d2
Branch: refs/heads/plugman-registry
Commit: 241031d26b6d15c520c568bbbcbce97665100248
Parents: 8dd5a1b
Author: Anis Kadri <an...@apache.org>
Authored: Tue Jul 16 17:18:56 2013 -0700
Committer: Anis Kadri <an...@apache.org>
Committed: Tue Jul 16 17:18:56 2013 -0700
----------------------------------------------------------------------
doc/help.txt | 20 ++++++++------
main.js | 64 +++++++++----------------------------------
plugman.js | 81 ++++++++++++++++++++++++++++++++++++++++++++-----------
3 files changed, 91 insertions(+), 74 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/241031d2/doc/help.txt
----------------------------------------------------------------------
diff --git a/doc/help.txt b/doc/help.txt
index e59d4fa..ae90cd7 100644
--- a/doc/help.txt
+++ b/doc/help.txt
@@ -1,4 +1,4 @@
-plugman installs and uninstalls plugin.xml-compatible cordova plugins into cordova-generated projects.
+plugman manages plugin.xml-compatible cordova plugins into cordova-generated projects.
Usage
=====
@@ -6,7 +6,7 @@ Usage
Install a plugin
----------------
- $ plugman --platform <platform> --project <directory> --plugin <plugin> [--variable NAME=VALUE]
+ $ plugman install --platform <platform> --project <directory> --plugin <plugin> [--variable NAME=VALUE]
Parameters:
@@ -18,7 +18,7 @@ Parameters:
Uninstall a plugin
------------------
- $ plugman --uninstall --platform <platform> --project <directory> --plugin <plugin-id>
+ $ plugman uninstall --platform <platform> --project <directory> --plugin <plugin-id>
Parameters:
- plugin <plugin-id>: The plugin to remove, identified by its id (see the plugin.xml's <plugin id> attribute)
@@ -32,7 +32,11 @@ Optional parameters
Optional flags
--------------
- --debug : Verbose mode
+ --debug|-d : Verbose mode
+
+ --help|-h : Displays this message
+
+ --version|-v : Displays version
Interacting with the registry
=============================
@@ -40,20 +44,20 @@ Interacting with the registry
Add a user account
------------------
- $ plugman --adduser
+ $ plugman adduser
Publish a plugin
----------------
- $ plugman --publish --plugin <directory>
+ $ plugman publish --plugin <directory>
Unpublish a plugin
------------------
- $ plugman --unpublish <name>@<version>
+ $ plugman unpublish <name>@<version>
Search for a plugin
-------------------
- $ plugman --search plugin,keywords
+ $ plugman search plugin,keywords
http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/241031d2/main.js
----------------------------------------------------------------------
diff --git a/main.js b/main.js
index 003ddbc..470db89 100755
--- a/main.js
+++ b/main.js
@@ -29,12 +29,6 @@ var path = require('path')
var known_opts = { 'platform' : [ 'ios', 'android', 'blackberry10', 'wp7', 'wp8' ]
, 'project' : path
, 'plugin' : [String, path, url]
- , 'install' : Boolean
- , 'uninstall' : Boolean
- , 'adduser' : Boolean
- , 'publish' : Boolean
- , 'unpublish' : Boolean
- , 'search' : String
, 'version' : Boolean
, 'help' : Boolean
, 'debug' : Boolean
@@ -46,71 +40,39 @@ var known_opts = { 'platform' : [ 'ios', 'android', 'blackberry10', 'wp7', 'wp8'
var cli_opts = nopt(known_opts, shortHands);
-// Default the plugins_dir to './cordova/plugins'.
-var plugins_dir;
+var cmd = cli_opts.argv.remain.shift();
// Without these arguments, the commands will fail and print the usage anyway.
if (cli_opts.plugins_dir || cli_opts.project) {
- plugins_dir = typeof cli_opts.plugins_dir == 'string' ?
+ cli_opts.plugins_dir = typeof cli_opts.plugins_dir == 'string' ?
cli_opts.plugins_dir :
path.join(cli_opts.project, 'cordova', 'plugins');
}
-process.on('uncaughtException', function(error){
- if (cli_opts.debug) {
+process.on('uncaughtException', function(error) {
+ if (cli_opts.debug) {
console.error(error.stack);
- } else {
+ } else {
console.error(error.message);
- }
- process.exit(1);
- });
+ }
+ process.exit(1);
+});
// Set up appropriate logging based on events
if (cli_opts.debug) {
plugman.on('log', console.log);
}
+
plugman.on('warn', console.warn);
plugman.on('error', console.error);
plugman.on('results', console.log);
+
if (cli_opts.version) {
console.log(package.name + ' version ' + package.version);
-}
-else if (cli_opts.help) {
+} else if (cli_opts.help) {
console.log(plugman.help());
-}
-else if ((cli_opts.install || cli_opts.uninstall || cli_opts.argv.original.length == 0) && (!cli_opts.platform || !cli_opts.project || !cli_opts.plugin)) {
- console.log(plugman.help());
-}
-else if (cli_opts.uninstall) {
- plugman.uninstall(cli_opts.platform, cli_opts.project, cli_opts.plugin, plugins_dir, { www_dir: cli_opts.www });
-}
-else if (cli_opts.adduser) {
- plugman.adduser();
-}
-else if (cli_opts.publish && cli_opts.plugin) {
- plugman.publish(new Array(cli_opts.plugin));
-}
-else if (cli_opts.unpublish && cli_opts.plugin) {
- plugman.unpublish(new Array(cli_opts.plugin));
-}
-else if (cli_opts.search) {
- plugman.search(cli_opts.search.split(','));
-}
-else if(cli_opts.install) {
- var cli_variables = {}
- if (cli_opts.variable) {
- cli_opts.variable.forEach(function (variable) {
- var tokens = variable.split('=');
- var key = tokens.shift().toUpperCase();
- if (/^[\w-_]+$/.test(key)) cli_variables[key] = tokens.join('=');
- });
- }
- var opts = {
-subdir: '.',
- cli_variables: cli_variables,
- www_dir: cli_opts.www
- };
- plugman.install(cli_opts.platform, cli_opts.project, cli_opts.plugin, plugins_dir, opts);
+} else if (plugman.commands[cmd]) {
+ plugman.commands[cmd](cli_opts);
} else {
console.log(plugman.help());
}
http://git-wip-us.apache.org/repos/asf/cordova-plugman/blob/241031d2/plugman.js
----------------------------------------------------------------------
diff --git a/plugman.js b/plugman.js
index 541946a..b0dbe03 100755
--- a/plugman.js
+++ b/plugman.js
@@ -21,20 +21,71 @@
var emitter = require('./src/events');
-module.exports = {
- help: require('./src/help'),
- install: require('./src/install'),
- uninstall: require('./src/uninstall'),
- fetch: require('./src/fetch'),
- prepare: require('./src/prepare'),
- config: require('./config'),
- adduser: require('./src/adduser'),
- publish: require('./src/publish'),
- unpublish:require('./src/unpublish'),
- search: require('./src/search'),
- config_changes: require('./src/util/config-changes'),
- on: emitter.addListener,
- off: emitter.removeListener,
+plugman = {
+ help: require('./src/help'),
+ install: require('./src/install'),
+ uninstall: require('./src/uninstall'),
+ fetch: require('./src/fetch'),
+ prepare: require('./src/prepare'),
+ config: require('./config'),
+ adduser: require('./src/adduser'),
+ publish: require('./src/publish'),
+ unpublish: require('./src/unpublish'),
+ search: require('./src/search'),
+ config_changes: require('./src/util/config-changes'),
+ on: emitter.addListener,
+ off: emitter.removeListener,
removeAllListeners: emitter.removeAllListeners,
- emit: emitter.emit
+ emit: emitter.emit
};
+
+plugman.commands = {
+ 'install' : function(cli_opts) {
+ if(!cli_opts.platform || !cli_opts.project || !cli_opts.plugin) {
+ return console.log(plugman.help());
+ }
+ var cli_variables = {}
+ if (cli_opts.variable) {
+ cli_opts.variable.forEach(function (variable) {
+ var tokens = variable.split('=');
+ var key = tokens.shift().toUpperCase();
+ if (/^[\w-_]+$/.test(key)) cli_variables[key] = tokens.join('=');
+ });
+ }
+ var opts = {
+ subdir: '.',
+ cli_variables: cli_variables,
+ www_dir: cli_opts.www
+ };
+ plugman.install(cli_opts.platform, cli_opts.project, cli_opts.plugin, cli_opts.plugins_dir, opts);
+ },
+ 'uninstall': function(cli_opts) {
+ if(!cli_opts.platform || !cli_opts.project || !cli_opts.plugin) {
+ return console.log(plugman.help());
+ }
+ plugman.uninstall(cli_opts.platform, cli_opts.project, cli_opts.plugin, cli_opts.plugins_dir, { www_dir: cli_opts.www });
+ },
+ 'adduser' : function(cli_opts) {
+ plugman.adduser();
+ },
+
+ 'search' : function(cli_opts) {
+ plugman.search(cli_opts.argv.remain);
+ },
+
+ 'publish' : function(cli_opts) {
+ if(!cli_opts.plugin) {
+ return console.log(plugman.help());
+ }
+ plugman.publish(new Array(cli_opts.plugin));
+ },
+
+ 'unpublish': function(cli_opts) {
+ if(!cli_opts.plugin) {
+ return console.log(plugman.help());
+ }
+ plugman.unpublish(new Array(cli_opts.plugin));
+ }
+};
+
+module.exports = plugman;