54 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| #!/usr/bin/node
 | |
| global.TOP='/home/sbosse/proj/jam/js';
 | |
| global.MODE='run';
 | |
| global.TARGET='node';
 | |
| global.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('--------------------------------');
 | |
| };
 | |
| 
 | |
| function usage () {
 | |
|   console.log('usage: run [-d] <javascript main file>');
 | |
|   console.log('       -d: Dump a stack trace on uncaught exceptions');
 | |
|   console.log('       TOP='+TOP);
 | |
|   process.exit ();
 | |
| }
 | |
| var exec;
 | |
| 
 | |
| var Compat = Require('com/compat');
 | |
| 
 | |
| Compat.args.parse(process.argv,[
 | |
|   ['-d',0,function (arg) {global.DEBUG=true;}],
 | |
|   ['-h',0,function (arg) {usage ()}],
 | |
|   [function (arg) {
 | |
|     if (!exec) exec=arg;
 | |
|   }]
 | |
| ],2);
 | |
| 
 | |
| if (!exec) usage();
 | |
| if (global.DEBUG)
 | |
|     Require(exec);
 | |
| else try {
 | |
|     Require(exec);
 | |
| } catch (e) {
 | |
|     out(e);
 | |
| }
 |