From a54a0f936820c224f86d2c4a8e56773059881fad Mon Sep 17 00:00:00 2001 From: sbosse Date: Mon, 21 Jul 2025 23:19:25 +0200 Subject: [PATCH] Mon 21 Jul 22:43:21 CEST 2025 --- js/top/run | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 js/top/run 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); +} +