147 lines
3.5 KiB
Plaintext
147 lines
3.5 KiB
Plaintext
head 1.1;
|
|
access;
|
|
symbols;
|
|
locks
|
|
sbosse:1.1; strict;
|
|
comment @# @;
|
|
|
|
|
|
1.1
|
|
date 2020.02.03.09.45.01; author sbosse; state Exp;
|
|
branches;
|
|
next ;
|
|
|
|
|
|
desc
|
|
@@
|
|
|
|
|
|
1.1
|
|
log
|
|
@.
|
|
@
|
|
text
|
|
@/**
|
|
** ==============================
|
|
** O O O OOOO
|
|
** O O O O O O
|
|
** O O O O O O
|
|
** OOOO OOOO O OOO OOOO
|
|
** O O O O O O O
|
|
** O O O O O O O
|
|
** OOOO OOOO O O OOOO
|
|
** ==============================
|
|
** Dr. Stefan Bosse http://www.bsslab.de
|
|
**
|
|
** COPYRIGHT: THIS SOFTWARE, EXECUTABLE AND SOURCE CODE IS OWNED
|
|
** BY THE AUTHOR(S).
|
|
** THIS SOURCE CODE MAY NOT BE COPIED, EXTRACTED,
|
|
** MODIFIED, OR OTHERWISE USED IN A CONTEXT
|
|
** OUTSIDE OF THE SOFTWARE SYSTEM.
|
|
**
|
|
** $AUTHORS: Stefan Bosse
|
|
** $INITIAL: (C) 2006-2019 bLAB
|
|
** $CREATED: 1-3-18 by sbosse.
|
|
** $VERSION: 1.1.41
|
|
**
|
|
** $INFO:
|
|
**
|
|
** JAM Shell Interpreter (Front end)
|
|
**
|
|
** $ENDOFINFO
|
|
*/
|
|
var Comp = Require('com/compat');
|
|
var Io = Require('com/io');
|
|
var doc = Require('doc/doc');
|
|
var readline = Require('com/readline');
|
|
var readlineSync = Require('term/readlineSync');
|
|
var renderer = doc.Renderer({lazy:true});
|
|
var http = Require('http');
|
|
var https = Require('http/https');
|
|
var util = Require('util')
|
|
var sip = Require('top/rendezvous');
|
|
var db = Require('db/db');
|
|
// JAM Shell Interpreter (Back end)
|
|
var JamShell = Require('shell/shell');
|
|
|
|
var ml = Require('ml/ml')
|
|
var nn = Require('nn/nn')
|
|
var csp = Require('csp/csp')
|
|
var sat = Require('logic/sat')
|
|
var csv = Require('parser/papaparse');
|
|
var ampCOM = Require('jam/ampCOM');
|
|
var numerics = Require('numerics/numerics')
|
|
|
|
var p;
|
|
|
|
var options= {
|
|
args:[],
|
|
echo: true,
|
|
modules : {
|
|
csp : csp,
|
|
csv : csv,
|
|
db : db,
|
|
doc : doc,
|
|
http : http,
|
|
https : https,
|
|
ml:ml,
|
|
nn:nn,
|
|
numerics:numerics,
|
|
readline : readline,
|
|
readlineSync : readlineSync,
|
|
sat : sat,
|
|
sip : sip,
|
|
},
|
|
extensions : {
|
|
url2addr: ampCOM.url2addr,
|
|
sleep: process.watchdog&&process.watchdog.sleep?
|
|
function (milli) {
|
|
process.watchdog.sleep(milli)
|
|
}:undefined
|
|
},
|
|
nameopts : {length:8, memorable:true, lowercase:true},
|
|
Nameopts : {length:8, memorable:true, uppercase:true},
|
|
output : null,
|
|
renderer : renderer,
|
|
server : false,
|
|
verbose : 0,
|
|
}
|
|
|
|
process.on('uncaughtException', function (err) {
|
|
console.error(err.stack);
|
|
console.log("jamsh not exiting...");
|
|
});
|
|
|
|
if ((p=process.argv.indexOf('--'))>0) {
|
|
options.args=process.argv.slice(p+1,process.argv.length);
|
|
process.argv=process.argv.slice(0,p);
|
|
}
|
|
|
|
if (process.argv[1].match(/jamsh$/)||process.argv[1].match(/jamsh\.debug$/)) {
|
|
var ind;
|
|
if (process.argv.indexOf('-h')>0) return print('usage: jamsh [-v -s] [script] [-e "shell commands"]');
|
|
if ((ind=process.argv.indexOf('-e'))>0) {
|
|
options.server=true;
|
|
options.output=console.log;
|
|
options.exec=process.argv[ind+1];
|
|
} else if (process.argv.length>2) {
|
|
var script = process.argv.filter(function (arg,ind) {
|
|
return ind>1 && arg.indexOf(':') == -1 && arg.indexOf('-') != 0;
|
|
});
|
|
if (script.length == 1) {
|
|
options.script=script[0];
|
|
options.output=console.log;
|
|
options.server=true;
|
|
}
|
|
}
|
|
process.argv.forEach(function (arg) {
|
|
switch (arg) {
|
|
case '-v': options.verbose++; break;
|
|
case '-s': options.server=false; break;
|
|
}
|
|
})
|
|
if (!options.server && options.verbose==0) options.verbose=1;
|
|
JamShell(options).init();
|
|
}
|
|
@
|