From 9d0850b4fb74d21f7e3a5189567ef80fc0239b75 Mon Sep 17 00:00:00 2001 From: Philip Chimento Date: Mon, 8 Jul 2013 16:36:54 -0700 Subject: 'eos-application-manifest' tool with subcommands This is the framework for an 'eos-application-manifest' tool with subcommands as in git. Currently the 'help' and 'version' subcommands are implemented. [endlessm/eos-sdk#152] --- tools/eos-application-manifest/commands/help.js | 47 ++++++++++++++++++++++ tools/eos-application-manifest/commands/version.js | 15 +++++++ 2 files changed, 62 insertions(+) create mode 100644 tools/eos-application-manifest/commands/help.js create mode 100644 tools/eos-application-manifest/commands/version.js (limited to 'tools/eos-application-manifest/commands') diff --git a/tools/eos-application-manifest/commands/help.js b/tools/eos-application-manifest/commands/help.js new file mode 100644 index 0000000..d991b85 --- /dev/null +++ b/tools/eos-application-manifest/commands/help.js @@ -0,0 +1,47 @@ +// Copyright 2013 Endless Mobile, Inc. + +const System = imports.system; + +function execute(args) { + if (args.length === 0) { + print('Usage: %s []\n'.format(System.programInvocationName)); + // Query all available subcommands + let oldSearchPath = imports.searchPath; + imports.searchPath = [commandSearchPath]; // only pick up subcommands + let commandsList = []; + for (let commandName in imports) { + commandsList.push(commandName); + } + imports.searchPath = oldSearchPath; + + // Print out summary for each subcommand + if (commandsList.length === 0) + return; + print('Summaries of commands:'); + let maxWidth = commandsList.reduce(function (prev, curr) { + return Math.max(curr.length, prev.length); + }); + commandsList.forEach(function (commandName) { + let command = imports[commandName]; + let summary; + if (typeof command.summary == 'undefined') + summary = 'No information available'; + else + summary = command.summary(); + print(' %%%ds - %%s'.format(maxWidth).format(commandName, summary)); + }); + return; + } + + const command = imports[args[0]]; + command.help(); +} + +function summary() { + return 'Displays help information about a subcommand'; +} + +function help() { + print("Displays help information about a subcommand.\n\ +Try '%s help '.".format(System.programInvocationName)); +} diff --git a/tools/eos-application-manifest/commands/version.js b/tools/eos-application-manifest/commands/version.js new file mode 100644 index 0000000..160b82a --- /dev/null +++ b/tools/eos-application-manifest/commands/version.js @@ -0,0 +1,15 @@ +// Copyright 2013 Endless Mobile, Inc. + +const System = imports.system; + +function execute(args) { + print("%s version %s".format(System.programInvocationName, programVersion)); +} + +function summary() { + return "Version information"; +} + +function help() { + print("Prints the version and exits."); +} -- cgit v1.2.3