46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| #!/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.<anonymous>\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] <javascript main file>');
 | |
|   console.log('       -d: Dump a stack trace on uncaught exceptions');
 | |
|   console.log('       TOP='+TOP);
 | |
| }
 | |
| 
 |