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

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_r11640926
  
    --- Diff: createmobilespec/createmobilespec.js ---
    @@ -17,99 +16,215 @@
         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'),
    -    shelljs,
    -    optimist;
    +    child_process = require('child_process'),
    +    shelljs;
    +
    +// Dependencies requirements check
     try {
         shelljs = require('shelljs');
    -    optimist = require('optimist');
     } catch (e) {
         console.error('Missing module. Please run "npm install" from this 
directory:\n\t' +
    -                   path.dirname(__dirname));
    +        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;
    +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
    +var mainModDir = process.cwd(),
    +// 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.
    +coho_dir = searchDir(mainModDir, 'cordova-coho'),
    +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(mainModDir, 'mobilespec'));
    +
    +// 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')) {
    +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');
    +//Determine which platforms are available
    +// Default platforms [Android, Blackberry], both platforms works under 
Windows, Linux and Mac OS
    +cordovaPlatforms = ['android', 'blackberry10'];
    --- End diff --
    
    When optimist was being used and the default behavior was to create both 
Android and iOS, that was just preserving the original behavior of the shell 
script when this ran only on OSX. Now that you are getting createmobilespec to 
work on Windows and Linux dev machines, it's probably wise to revisit that 
default behavior. I'd suggest that the new default is to create only the mobile 
platforms that are requested. For example "createmobilespec --android 
--blackberry10". If no args are specified, then exit with an error. These 
should be the same words used in the "cordova platform add" command, for 
consistency. And I would also suggest to have them be args instead of a menu, 
so that createmobilespec can be used by a parent script in a scenario such as 
Medic (continuous integration test). Interactive input would make that use case 
difficult.
    
    I see your point about checking which mobile platforms are appropriate for 
the dev workstation, but if the "cordova platform add" command is doing that 
checking already (which is what createmobilespec is calling anyway), then I 
would suggest to not bother implementing that check again here in 
createmobilespec, and just let the error bubble up from "cordova platform add". 
createmobilespec is going to be used only by people developing Cordova, so they 
should already have some knowledge of the basic rules, as compared to an app 
developer. So I think it is OK to let "cordova platform add" catch the issue 
instead of duplicating the "check" logic here, as long as the error does bubble 
up in a presentation that is comprehensible.


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