98 lines
3.1 KiB
JavaScript
98 lines
3.1 KiB
JavaScript
|
// 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"] || '.';
|
||
|
};
|