195 lines
4.7 KiB
JavaScript
195 lines
4.7 KiB
JavaScript
// Generated by CoffeeScript 1.8.0
|
|
var Program, SequenceNumber, SequenceNumberMax, fs, log, path, utils,
|
|
__hasProp = {}.hasOwnProperty;
|
|
|
|
fs = require('fs');
|
|
|
|
path = require('path');
|
|
|
|
utils = exports;
|
|
|
|
utils.Program = Program = path.basename(process.argv[1]);
|
|
|
|
SequenceNumberMax = 100 * 1024 * 1024;
|
|
|
|
SequenceNumber = 0;
|
|
|
|
utils.getNextSequenceNumber = function(g) {
|
|
SequenceNumber++;
|
|
if (SequenceNumber > SequenceNumberMax) {
|
|
SequenceNumber = 0;
|
|
}
|
|
return SequenceNumber;
|
|
};
|
|
|
|
utils.trim = function(string) {
|
|
return string.replace(/(^\s+)|(\s+$)/g, '');
|
|
};
|
|
|
|
utils.log = log = function(message) {
|
|
var date, time;
|
|
date = new Date();
|
|
time = date.toISOString();
|
|
return console.log("" + time + " " + Program + ": " + message);
|
|
};
|
|
|
|
utils.logVerbose = function(message) {
|
|
var _ref;
|
|
if (!(utils != null ? (_ref = utils.options) != null ? _ref.verbose : void 0 : void 0)) {
|
|
return;
|
|
}
|
|
return log(message);
|
|
};
|
|
|
|
utils.logDebug = function(message) {
|
|
var _ref;
|
|
if (!(utils != null ? (_ref = utils.options) != null ? _ref.debug : void 0 : void 0)) {
|
|
return;
|
|
}
|
|
return log(message);
|
|
};
|
|
|
|
utils.exit = function(message) {
|
|
log(message);
|
|
return process.exit(1);
|
|
};
|
|
|
|
utils.pitch = function(message) {
|
|
log(message);
|
|
throw message;
|
|
};
|
|
|
|
utils.setOptions = function(options) {
|
|
return utils.options = options;
|
|
};
|
|
|
|
utils.ensureInteger = function(value, message) {
|
|
var newValue;
|
|
newValue = parseInt(value);
|
|
if (isNaN(newValue)) {
|
|
utils.exit("" + message + ": '" + value + "'");
|
|
}
|
|
return newValue;
|
|
};
|
|
|
|
utils.ensureString = function(value, message) {
|
|
if (typeof value !== 'string') {
|
|
utils.exit("" + message + ": '" + value + "'");
|
|
}
|
|
return value;
|
|
};
|
|
|
|
utils.ensureBoolean = function(value, message) {
|
|
var newValue, uValue;
|
|
uValue = value.toString().toUpperCase();
|
|
newValue = null;
|
|
switch (uValue) {
|
|
case 'TRUE':
|
|
newValue = true;
|
|
break;
|
|
case 'FALSE':
|
|
newValue = false;
|
|
}
|
|
if (typeof newValue !== 'boolean') {
|
|
utils.exit("" + message + ": '" + value + "'");
|
|
}
|
|
return newValue;
|
|
};
|
|
|
|
utils.setNamesForClass = function(aClass) {
|
|
var key, val, _ref, _results;
|
|
for (key in aClass) {
|
|
if (!__hasProp.call(aClass, key)) continue;
|
|
val = aClass[key];
|
|
if (typeof val === "function") {
|
|
val.signature = "" + aClass.name + "::" + key;
|
|
val.displayName = val.signature;
|
|
val.name = val.signature;
|
|
}
|
|
}
|
|
_ref = aClass.prototype;
|
|
_results = [];
|
|
for (key in _ref) {
|
|
if (!__hasProp.call(_ref, key)) continue;
|
|
val = _ref[key];
|
|
if (typeof val === "function") {
|
|
val.signature = "" + aClass.name + "." + key;
|
|
val.displayName = val.signature;
|
|
_results.push(val.name = val.signature);
|
|
} else {
|
|
_results.push(void 0);
|
|
}
|
|
}
|
|
return _results;
|
|
};
|
|
|
|
utils.registerClass = function(aClass) {
|
|
utils.setNamesForClass(aClass);
|
|
return aClass;
|
|
};
|
|
|
|
utils.alignLeft = function(string, length) {
|
|
while (string.length < length) {
|
|
string = "" + string + " ";
|
|
}
|
|
return string;
|
|
};
|
|
|
|
utils.alignRight = function(string, length) {
|
|
while (string.length < length) {
|
|
string = " " + string;
|
|
}
|
|
return string;
|
|
};
|
|
|
|
utils.fileExistsSync = function(name) {
|
|
if (fs.existsSync) {
|
|
return fs.existsSync(name);
|
|
}
|
|
return path.existsSync(name);
|
|
};
|
|
|
|
Error.prepareStackTrace = function(error, structuredStackTrace) {
|
|
var callSite, file, func, funcName, line, longestFile, longestLine, result, _i, _j, _len, _len1;
|
|
result = [];
|
|
result.push("---------------------------------------------------------");
|
|
result.push("error: " + error);
|
|
result.push("---------------------------------------------------------");
|
|
result.push("stack: ");
|
|
longestFile = 0;
|
|
longestLine = 0;
|
|
for (_i = 0, _len = structuredStackTrace.length; _i < _len; _i++) {
|
|
callSite = structuredStackTrace[_i];
|
|
file = callSite.getFileName();
|
|
line = callSite.getLineNumber();
|
|
file = path.basename(file);
|
|
line = "" + line;
|
|
if (file.length > longestFile) {
|
|
longestFile = file.length;
|
|
}
|
|
if (line.length > longestLine) {
|
|
longestLine = line.length;
|
|
}
|
|
}
|
|
for (_j = 0, _len1 = structuredStackTrace.length; _j < _len1; _j++) {
|
|
callSite = structuredStackTrace[_j];
|
|
func = callSite.getFunction();
|
|
file = callSite.getFileName();
|
|
line = callSite.getLineNumber();
|
|
file = path.basename(file);
|
|
line = "" + line;
|
|
file = utils.alignRight(file, longestFile);
|
|
line = utils.alignLeft(line, longestLine);
|
|
funcName = func.displayName || func.name || callSite.getFunctionName();
|
|
callSite.getMethodName();
|
|
'???';
|
|
if (funcName === "Module._compile") {
|
|
result.pop();
|
|
result.pop();
|
|
break;
|
|
}
|
|
result.push(" " + file + ":" + line + " - " + funcName + "()");
|
|
}
|
|
return result.join("\n");
|
|
};
|