diff --git a/app/bin.js b/app/bin.js index 908ba8417a0..06569f8d472 100644 --- a/app/bin.js +++ b/app/bin.js @@ -1 +1,60 @@ #!/usr/bin/env node +"use strict"; + +var net = require('net') + , repl = require('repl') + , underscore = require('underscore') + , colors = require('colors') + , appium = require('../server') + , parser = require('./parser') + ; + +var startRepl = function() { + var help = function() { + console.log("\nWelcome to the Appium CLI".cyan); + console.log(" - Access the appium object via the object: 'appium'".grey); + console.log(" - appium.run is the function to start the server".grey); + console.log(" - args is the default params data structure".grey); + console.log(" - set args.app then run appium.run(args);\n".grey); + return 'Thanks for asking'; + }; + + help(); + + var r = repl.start('(appium): '); + r.context.appium = appium; + r.context.parser = parser(); + r.context.help = help; + r.context.args = { + app: '/path/to/test/app' + , verbose: '1' + , udid: null + , address: '127.0.0.1' + , port: 4723 + , remove: true + }; + + var connections = 0; + var server = net.createServer(function (socket) { + connections += 1; + socket.setTimeout(5*60*1000, function() { + socket.destroy(); + }); + repl.start("(appium): ", socket); + }).listen(process.platform === "win32" ? "\\\\.\\pipe\\node-repl-sock-" + process.pid : "/tmp/node-repl-sock-" + process.pid); + + r.on('exit', function () { + server.close(); + process.exit(); + }); +}; + +if (process.argv[2] === "shell") { + startRepl(); +} +else { + var args = parser().parseArgs(); + args.verbose = 1; + console.log("Pre-flight check ...".grey); + appium.run(args, function() { console.log('Rock and roll.'.grey); }); +} diff --git a/package.json b/package.json index 521a129f067..7b82d2d4289 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "appium", - "description": "Selenium for Apps.", + "description": "Automation for Apps.", "tags": [ "automation", "javascript" @@ -31,7 +31,8 @@ "argparse": "~0.1.10", "path": "~0.4.9", "rimraf": "~2.1.1", - "uuid-js": "~0.7.4" + "uuid-js": "~0.7.4", + "winston": "~0.6.2" }, "scripts": { "test": "grunt lint unit"