function main() { var args = parseArgs(process.argv); function onFailure(err) { console.error(err); } function onSuccess(result) { if (typeof result.body == 'object') { console.log(JSON.stringify(result.body, null, 4)); } else if (result.body) { console.log(result.body); } } var client = new HarnessClient(args.target); var cmd = args.argv.remain[0]; if (cmd == 'push') { if (!args.argv.remain[1]) { usage(); } var pushSession = client.createPushSession(args.argv.remain[1]); client.quit() .then(function() { return pushSession.push(); }).then(onSuccess, onFailure); } else if (cmd == 'deleteall') { client.deleteAllApps().then(onSuccess, onFailure); } else if (cmd == 'delete') { if (!args.argv.remain[1]) { usage(); } client.deleteApp().then(onSuccess, onFailure); } else if (cmd == 'menu') { client.menu().then(onSuccess, onFailure); } else if (cmd == 'eval') { if (!args.argv.remain[1]) { usage(); } client.evalJs(args.argv.remain[1]).then(onSuccess, onFailure); } else if (cmd == 'assetmanifest') { client.assetmanifest(args.appid).then(onSuccess, onFailure); } else if (cmd == 'info') { client.info().then(onSuccess, onFailure); } else if (cmd == 'launch') { client.launch(args.argv.remain[1]).then(onSuccess, onFailure); } else if (cmd == 'quit') { client.quit().then(onSuccess, onFailure); } else { usage(); } }
function createClient() { var target = targets[i++]; if (!target) { ret.platforms = Object.keys(platformMap); return ret; } var newClient = new PushClient(target); return newClient.info() .then(function(response) { var infoJson = response.body; var platform = infoJson['platform']; platformMap[platform] = true; if (ret.appType == 'chrome') { ret.clientInfos.push({ platform: platform, client: newClient, pushSession: newClient.createPushSession(chromeAppPushRoot), watchDir: chromeAppPushRoot }); } else { // Vanilla Cordova project. var wwwDir = utils.assetDirForPlatform(platform); ret.clientInfos.push({ platform: platform, client: newClient, pushSession: newClient.createPushSession('.'), // push client figures out to use platforms/ watchDir: wwwDir }); } return createClient(); }, function(error) { if (error.code === 'ECONNREFUSED') { console.warn(); console.warn('Could not connect to device at ' + target); console.warn('For a USB connected Android device, try running: adb forward tcp:2424 tcp:2424'); console.warn('For a networked device, use --target=DEVICE_IP_ADDRESS'); } else if (error.code === 'ECONNRESET') { console.warn('\nPlease make sure that the Chrome App Developer Tool for Mobile is running on your device.'); } else { console.error(error); } process.exit(); }); }