[ https://issues.apache.org/jira/browse/CB-8197?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14287374#comment-14287374 ]
ASF GitHub Bot commented on CB-8197: ------------------------------------ Github user vladimir-kotikov commented on a diff in the pull request: https://github.com/apache/cordova-ios/pull/126#discussion_r23373228 --- Diff: bin/templates/scripts/cordova/lib/run.js --- @@ -0,0 +1,184 @@ +/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +*/ + +/*jshint node: true*/ + +var Q = require('q'), + nopt = require('nopt'), + path = require('path'), + shell = require('shelljs'), + build = require('./build'), + spawn = require('./spawn'), + check_reqs = require('./check_reqs'); + +var cordovaPath = path.join(__dirname, '..'); +var projectPath = path.join(__dirname, '..', '..'); + +module.exports.run = function (argv) { + + // parse args here + // --debug and --release args not parsed here + // but still valid since they can be passed down to build command + var args = nopt({ + // "archs": String, // TODO: add support for building different archs + "list": Boolean, + "nobuild": Boolean, + "device": Boolean, "emulator": Boolean, "target": String + }, {}, argv); + + // Validate args + if (args.device && args.emulator) { + return Q.reject('Only one of "device"/"emulator" options should be specified'); + } + + // validate target device for ios-sim + // Valid values for "--target" (case sensitive): + var validTargets = ["iPhone-4s", "iPhone-5", "iPhone-5s", "iPhone-6-Plus", "iPhone-6", + "iPad-2", "iPad-Retina", "iPad-Air", "Resizable-iPhone", "Resizable-iPad"]; + if (args.target && validTargets.indexOf(args.target) < 0 ) { + return Q.reject(args.target + " is not a valid target for emulator"); + } + + // check for either ios-sim or ios-deploy is available + // depending on arguments provided + var checkTools = args.device ? check_reqs.check_ios_deploy() : check_reqs.check_ios_sim(); + + // support for CB-8168 `cordova/run --list` + if (args.list) { + if (args.device) return listDevices(); + if (args.emulator) return listEmulators(); + return listDevices().then(function () { + return listEmulators(); + }); + } + + return checkTools.then(function () { + if (args.nobuild) { + // --nobuild option is passed. Skipping build... + return Q(); --- End diff -- Don't knew that this will work. Thanks for advice! > Switch to nodejs for ios platform scripts > ----------------------------------------- > > Key: CB-8197 > URL: https://issues.apache.org/jira/browse/CB-8197 > Project: Apache Cordova > Issue Type: Improvement > Components: iOS > Reporter: Vladimir Kotikov > > Currently platform tooling for ios is based on bash scripts and to improve > maintainability of such scripts it would be useful to port them to NodeJS. > Part of this work is already done for create/update scripts in > https://issues.apache.org/jira/browse/CB-5706 but platform scripts placed in > cordova folder of platform is still being unported. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org