From 2efcdc89868fc7fd900176ba3bba174a7fc52d5f Mon Sep 17 00:00:00 2001 From: sbosse Date: Mon, 21 Jul 2025 23:19:05 +0200 Subject: [PATCH] Mon 21 Jul 22:43:21 CEST 2025 --- js/top/runapp | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 js/top/runapp diff --git a/js/top/runapp b/js/top/runapp new file mode 100644 index 0000000..d980eb8 --- /dev/null +++ b/js/top/runapp @@ -0,0 +1,53 @@ +#!/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.\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] '); + 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); +}