blob: 3c4b50784a538af7fdbb471d56f35e11802ef0f4 [file] [log] [blame]
// Generated by CoffeeScript 1.8.0
var fs, getDotWeinreServerProperties, getTildeReplacement, nopt, optionDefaults, path, printHelp, printNoptError, replaceTilde, utils, weinre, _;
fs = require('fs');
path = require('path');
_ = require('underscore');
nopt = require('nopt');
utils = require('./utils');
weinre = require('./weinre');
optionDefaults = {
httpPort: 8080,
boundHost: 'localhost',
verbose: false,
debug: false,
readTimeout: 5
};
exports.run = function() {
var args, knownOpts, opts, parsedOpts, shortHands;
knownOpts = {
httpPort: Number,
boundHost: String,
verbose: Boolean,
debug: Boolean,
readTimeout: Number,
deathTimeout: Number,
help: Boolean
};
shortHands = {
'?': ['--help'],
'h': ['--help']
};
nopt.invalidHandler = printNoptError;
parsedOpts = nopt(knownOpts, shortHands, process.argv, 2);
if (parsedOpts.help) {
printHelp();
}
args = parsedOpts.argv.remain;
if (args.length !== 0) {
printHelp();
}
delete parsedOpts.argv;
opts = _.extend({}, optionDefaults, getDotWeinreServerProperties(), parsedOpts);
if (opts.deathTimeout == null) {
opts.deathTimeout = 3 * opts.readTimeout;
}
utils.setOptions(opts);
return weinre.run(opts);
};
printNoptError = function(key, val, types) {
return utils.exit("error with option '" + key + "', value '" + val + "'");
};
printHelp = function() {
var version;
version = weinre.getVersion();
console.error("usage: " + utils.Program + " [options]\nversion: " + version + "\n\noptions:\n --httpPort port to run the http server on default: " + optionDefaults.httpPort + "\n --boundHost ip address to bind the server to default: " + optionDefaults.boundHost + "\n --verbose print more diagnostics default: " + optionDefaults.verbose + "\n --debug print even more diagnostics default: " + optionDefaults.debug + "\n --readTimeout seconds to wait for a client message default: " + optionDefaults.readTimeout + "\n --deathTimeout seconds to wait to kill client default: 3*readTimeout\n\n--boundHost can be an ip address, hostname, or -all-, where -all-\nmeans binding to all ip address on the current machine'\n\nfor more info see: http://people.apache.org/~pmuellr/weinre/");
return process.exit();
};
getDotWeinreServerProperties = function() {
var contents, fileName, key, line, lines, match, properties, val, _i, _len;
properties = {};
fileName = replaceTilde('~/.weinre/server.properties');
if (!utils.fileExistsSync(fileName)) {
return properties;
}
contents = fs.readFileSync(fileName, 'utf8');
lines = contents.split('\n');
for (_i = 0, _len = lines.length; _i < _len; _i++) {
line = lines[_i];
line = line.replace(/#.*/, '');
match = line.match(/\s*(\w+)\s*:\s*(.+)\s*/);
if (!match) {
continue;
}
key = utils.trim(match[1]);
val = utils.trim(match[2]);
properties[key] = val;
}
return properties;
};
replaceTilde = function(fileName) {
return fileName.replace('~', getTildeReplacement());
};
getTildeReplacement = function() {
return process.env["HOME"] || process.env["USERPROFILE"] || '.';
};