[ https://issues.apache.org/jira/browse/CB-6437?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13977502#comment-13977502 ]
ASF GitHub Bot commented on CB-6437: ------------------------------------ Github user martincgg commented on a diff in the pull request: https://github.com/apache/cordova-mobile-spec/pull/55#discussion_r11877931 --- Diff: createmobilespec/createmobilespec.js --- @@ -17,99 +16,163 @@ KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -*/ - -var fs = require('fs'), - path = require('path'), + */ + +var fs = require("fs"), + path = require("path"), + child_process = require("child_process"), shelljs, optimist; + +// Dependencies requirements check try { - shelljs = require('shelljs'); - optimist = require('optimist'); + shelljs = require("shelljs"); + optimist = require("optimist"); } catch (e) { - console.error('Missing module. Please run "npm install" from this directory:\n\t' + + console.error('Missing module. Please run \"npm install\" from this directory:\n\t' + path.dirname(__dirname)); process.exit(2); } - -var tokens = process.argv.slice(2); -var argv = optimist(tokens) - .default('android', false) - .default('ios', false) - .usage('Usage: $0 [--android] [--ios]\nDefault is to use Android and iOS.') - .argv; -// preserve the original behavior when there are no args -if (tokens.length === 0) { - argv.android = true; - argv.ios = true; +// Print relevant information +console.log("Creating \"mobilespec\" project. If you have any errors, it may be from missing repositories."); +console.log("To clone needed repositories:"); +console.log(" ./cordova-coho/coho repo-clone -r plugins -r mobile-spec -r android -r ios -r cli"); +console.log("To update all repositories:"); +console.log(" ./cordova-coho/coho repo-update"); + +// Setting up vars, folders and libraries, to ensure full compatibility cross platform, absolute paths are used instead of relative paths +// Cordova Coho dir, it should contain all libraries and required repositories +// [cordova-cli, cordova-android, cordova-blackberry, cordova-ios, cordova-windows, cordova-windows8, all plugins libraries, cordova-mobile-spec, cordova-js] +// searchDir function it was added, to look for cordova-coho folder backwards, for cases like absolute/path/cordova-coho/cordova-coho/...All libraries +// This is to make sure that cordova-coho exists and it's the right one. +shelljs.pushd("../../../cordova-coho") +var coho_dir = process.cwd()+path.sep, + cordova_cli = path.join(coho_dir, "cordova-cli", "bin", "cordova"), + cordova_ms = path.join(coho_dir, "cordova-mobile-spec"), + cordova_js = path.join(coho_dir, "cordova-js"), + ms_project_dir = path.join(coho_dir, "mobilespec"), + platforms = [], + //Setting up optimist features + tokens = process.argv.slice(2), + argv = optimist.usage('\n\nCreatemobilespec usage: \n$0 [--android] [--ios]') + .alias('h', 'help') + .argv; + +// Main libraries and path"s requirements check +if (!fs.existsSync(coho_dir)) { + console.log("Please run this script from the directory that contains cordova-coho"); + shelljs.exit(1); } -var platforms = []; -if (argv.android) { platforms.push('android'); } -if (argv.ios) { platforms.push('ios'); } -if (!fs.existsSync('cordova-mobile-spec')) { - console.log('Please run this script from the directory that contains cordova-mobile-spec'); +if (!fs.existsSync(cordova_ms)) { + console.log("Please run this script from the directory that contains cordova-mobile-spec"); shelljs.exit(1); } -if (fs.existsSync('mobilespec')) { - console.log('Directory "mobilespec" already exists. Delete it first then re-run.'); +if (!fs.existsSync(cordova_js)) { + console.log("Please run this script from the directory that contains cordova-js"); shelljs.exit(1); } -console.log('Creating mobilespec project. If you have any errors, it may be from missing repositories.'); -console.log('To clone needed repositories:'); -console.log(" ./cordova-coho/coho repo-clone -r plugins -r mobile-spec -r cli -r " + platforms.join(' -r ')); -console.log('To update all repositories:'); -console.log(' ./cordova-coho/coho repo-update'); +// No arguments throws error +if (tokens.length === 0) { + throw new Error('No arguments found'); +} + +if (argv.help) {optimist.showHelp(); return;} +if (argv.android) { platforms.push("android");} +if (argv.ios) { platforms.push("ios");} +if (argv.blackberry10) { platforms.push("blackberry10");} +if (argv.wp8) { platforms.push("wp8");} +if (argv.windows8) { platforms.push("windows8");} + +if (platforms.length === 0){ + throw new Error ('No supported platforms'); --- End diff -- Understood, It's a better message, I'll change it, and I'll show the help information. > [Mobilespec] improve and add support for blackberry, wp8, windows8 > ------------------------------------------------------------------ > > Key: CB-6437 > URL: https://issues.apache.org/jira/browse/CB-6437 > Project: Apache Cordova > Issue Type: Improvement > Components: BlackBerry, mobile-spec, Windows 8, WP8 > Affects Versions: 3.4.0 > Reporter: Martin Gonzalez > Assignee: Martin Gonzalez > Labels: blackberry10, mobilespec,, module, node, support, > windows8, wp8 > Fix For: 3.5.0 > > > The new node module for Mobilespecs can be improved. > -Adding more functionality > -Supporting platforms as blackberry10, windows phone 8 and windows 8. > -Add functionality to automate some process as well. > -Add functionality to add platforms according to the development environment > --- Android, Blackberry, iOS ---> Mac. > --- Android, Blackberry, Windows 8, Windows Phone 8 ---> Windows 8. > --- Android, Blackberry ---> Linux or any other Windows OS. -- This message was sent by Atlassian JIRA (v6.2#6252)