[ 
https://issues.apache.org/jira/browse/CB-6437?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13977390#comment-13977390
 ] 

ASF GitHub Bot commented on CB-6437:
------------------------------------

Github user cmarcelk commented on a diff in the pull request:

    https://github.com/apache/cordova-mobile-spec/pull/55#discussion_r11874991
  
    --- 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 --
    
    This verbage is a bit vague if it is Cordova's fault or the user's fault. 
How about something like "No platforms were selected. Please choose at least 
one of the supported platforms." and invoke optimist.showHelp(). Is there 
anyone to catch this throw?


> [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)

Reply via email to