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