diff --git a/js/top/run b/js/top/run new file mode 100644 index 0000000..fd6ae5a --- /dev/null +++ b/js/top/run @@ -0,0 +1,45 @@ +#!/usr/bin/node +global.TOP='/home/sbosse/proj/jam/js'; +var debug=false; +require(TOP+'/top/module')([process.cwd(),TOP]); + +function out(str) {console.log(str);}; +function dump() { + var e = new Error('dummy'); + var stack = e.stack.replace(/^[^\(]+?[\n$]/gm, '') + .replace(/^\s+at\s+/gm, '') + .replace(/^Object.\s*\(/gm, '{anonymous}()@') + .split('\n'); + out('Stack Trace'); + out('--------------------------------'); + for(var i in stack) { + if (i>0) { + var line = stack[i]; + if(line.indexOf('Module.',0)>=0) break; + out(line); + } + } + out('--------------------------------'); +}; + +if (process.argv[2]) { + if (process.argv[2]=='-d') { + debug=true; + process.argv.shift(); + } + process.argv.shift(); + var exec=process.argv[1]; + process.argv.shift(); + if (debug) + Require(exec); + else try { + Require(exec); + } catch (e) { + out(e); + } +} else { + console.log('usage: run [-d] '); + console.log(' -d: Dump a stack trace on uncaught exceptions'); + console.log(' TOP='+TOP); +} +