var fs = require('fs'),
path = require('path'),
nopt = require('nopt'),
url = require('url'),
cordovaServe = require('cordova-serve');
var args = process.argv;
start(args);
function start(argv) {
var args = nopt({'help': Boolean, 'target': String, 'port': Number}, {'help': ['/?', '-h', 'help', '-help', '/help']}, argv);
if(args.help) {
help();
}
args.port = args.port || 8000;
args.target = args.target || "chrome";
var root = path.join(__dirname, '../'),
configFile = path.resolve(path.join(root, 'config.xml')),
configXML = fs.readFileSync(configFile, 'utf8'),
sourceFile = /<content[\s]+?src\s*=\s*"(.*?)"/i.exec(configXML);
var server = cordovaServe();
server.servePlatform('browser', {port: args.port, noServerInfo: true}).then(function () {
var projectUrl = url.resolve('http://localhost:' + server.port + '/', sourceFile ? sourceFile[1] : 'index.html');
console.log('Static file server running @ ' + projectUrl + '\nCTRL + C to shut down');
return cordovaServe.launchBrowser({target: args.target, url: projectUrl});
}).catch(function (error) {
console.log(error.message || error.toString());
if (server.server) {
server.server.close();
}
});
}
function help() {
console.log("\nUsage: run [ --target=<browser> ] [ --port=<number> ]");
console.log(" --target=<browser> : Launches the specified browser. Chrome is default.");
console.log(" --port=<number> : Http server uses specified port number.");
console.log("Examples:");
console.log(" run");
console.log(" run -- --target=ie");
console.log(" run -- --target=chrome --port=8000");
console.log("");
process.exit(0);
}