jsir 2.0.5 → 2.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cmd/oaa.js +42 -57
- package/index.js +1 -2
- package/package.json +1 -1
- package/util.js +2 -2
- package/cmd/configServer.js +0 -31
- package/cmd/dirServer.js +0 -61
- package/cmd/ethDataServer.js +0 -77
- package/cmd/mockServer.js +0 -119
- package/cmd/see.js +0 -67
- package/cmd/solCd.js +0 -5
- package/cmd/solComplie.js +0 -4
- package/cmd/solDeploy.js +0 -4
- package/cmd/solTest.js +0 -7
- package/cmd/solTt.js +0 -10
- package/cmd/staticServer.js +0 -18
- package/sol.js +0 -340
- package/source/change.txt +0 -2038
- package/source/gua.json +0 -10
- package/source/pos.json +0 -8
package/cmd/oaa.js
CHANGED
|
@@ -1,24 +1,26 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const $lib = require('../util');
|
|
3
2
|
const path = require('path');
|
|
3
|
+
const {spawnSync} = require('child_process');
|
|
4
|
+
const globalDirectories = require('global-dirs');
|
|
5
|
+
let nodePath = process.env.NODE_PATH ? process.env.NODE_PATH.trim():'';
|
|
6
|
+
let avoidFlag = path.delimiter + path.delimiter + path.delimiter;
|
|
7
|
+
if (!nodePath.endsWith(avoidFlag) && nodePath.indexOf(globalDirectories.npm.packages) === -1) {
|
|
8
|
+
process.env.NODE_PATH = [globalDirectories.npm.packages, nodePath].filter(i => i).join(path.delimiter) + avoidFlag
|
|
9
|
+
process.on('SIGINT', function () {});
|
|
10
|
+
spawnSync(process.argv[0], process.argv.slice(1), {stdio:"inherit"});
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const $lib = require('../util');
|
|
4
15
|
const {
|
|
5
16
|
getLibDataDir, trim, regEach, getConfig, mkdir, reget,
|
|
6
17
|
getCbText, e, sleep, objDataFile, vl, md5, BigNumber,
|
|
7
18
|
info, warn, error, arrayDataFile, infoStr, warnStr, errorStack,
|
|
8
19
|
getInfo, ei, pad, msgStr, getType,
|
|
9
20
|
errorTag, isArgsMatch, draftQuery, setConfig,
|
|
10
|
-
$log, $draft, getTextComments
|
|
21
|
+
$log, $draft, getTextComments
|
|
11
22
|
} = $lib;
|
|
12
|
-
const _args = process.argv.slice(2).map(trim)
|
|
13
|
-
let nodePath = trim(process.env.NODE_PATH)
|
|
14
|
-
let avoidFlag = path.delimiter + path.delimiter + path.delimiter;
|
|
15
|
-
if (!nodePath.endsWith(avoidFlag) && nodePath.indexOf(globalModulesPath) === -1) {
|
|
16
|
-
process.env.NODE_PATH = [globalModulesPath, nodePath].filter(i => i).join(path.delimiter) + avoidFlag
|
|
17
|
-
process.on('SIGINT', function () {});
|
|
18
|
-
ei(`jsir`, _args);
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
|
|
23
|
+
const _args = process.argv.slice(2).map(trim);
|
|
22
24
|
const evalCode = require('../evalCode')
|
|
23
25
|
const _chokidar = require('chokidar');
|
|
24
26
|
const setting = require('../setting')
|
|
@@ -27,7 +29,6 @@ const readline = require("readline");
|
|
|
27
29
|
|
|
28
30
|
const _workspaceConfigFile = 'workspace.json';
|
|
29
31
|
const _libDataDir = getLibDataDir()
|
|
30
|
-
const _history9 = []
|
|
31
32
|
const _tipsOnRm = {}
|
|
32
33
|
const _fileWatcherMap = {}
|
|
33
34
|
const _types = {
|
|
@@ -110,10 +111,8 @@ function checkWorkspaces() {
|
|
|
110
111
|
async function start() {
|
|
111
112
|
checkWorkspaces()
|
|
112
113
|
|
|
114
|
+
_cmdMap = objDataFile(_cmdMapFile)
|
|
113
115
|
if (_args[0]) {
|
|
114
|
-
if (_noAppendNextLine) {
|
|
115
|
-
_cmdMap = objDataFile(_cmdMapFile)
|
|
116
|
-
}
|
|
117
116
|
let line = _args.map(i => {
|
|
118
117
|
if (/\s+/.test(i) || !i) {
|
|
119
118
|
i = `"${i}"`
|
|
@@ -122,8 +121,12 @@ async function start() {
|
|
|
122
121
|
}).join(' ')
|
|
123
122
|
await wrapperInput(line)
|
|
124
123
|
} else {
|
|
125
|
-
|
|
126
|
-
|
|
124
|
+
let defaultAction = getConfig("defaultAction", "repl");
|
|
125
|
+
if (defaultAction && keywordDef[defaultAction]) {
|
|
126
|
+
await wrapperInput('.' + defaultAction)
|
|
127
|
+
} else {
|
|
128
|
+
await wrapperInput('.repl')
|
|
129
|
+
}
|
|
127
130
|
}
|
|
128
131
|
}
|
|
129
132
|
|
|
@@ -262,7 +265,7 @@ function initRl(callback, preStr, hidden) {
|
|
|
262
265
|
if (promptStr !== '') {
|
|
263
266
|
promptStr = (preStr
|
|
264
267
|
|| ((callback && callback !== wrapperInput) ? "-> ":"")
|
|
265
|
-
|| [Object.values(global.$tips).filter(i =>
|
|
268
|
+
|| [Object.values(global.$tips).map(String).filter(i => i).map(i => i.replace(/,/g, '-')).join(','), $defaultSpace].filter(i => i).join(':') + `> `)
|
|
266
269
|
promptStr = infoStr(promptStr)
|
|
267
270
|
}
|
|
268
271
|
if (hidden) {
|
|
@@ -411,26 +414,6 @@ function rename(dir, oldName, newName) {
|
|
|
411
414
|
listCmd()
|
|
412
415
|
}
|
|
413
416
|
|
|
414
|
-
function putHis(x) {
|
|
415
|
-
if (_history9.indexOf(x) !== -1) {
|
|
416
|
-
_history9.splice(_history9.indexOf(x), 1)
|
|
417
|
-
}
|
|
418
|
-
_history9.push(x)
|
|
419
|
-
if (_history9.length > 9) {
|
|
420
|
-
_history9.shift()
|
|
421
|
-
}
|
|
422
|
-
}
|
|
423
|
-
|
|
424
|
-
function hisToCmdMap() {
|
|
425
|
-
let i = 1
|
|
426
|
-
let cmdMap = {}
|
|
427
|
-
for (let item of _history9) {
|
|
428
|
-
cmdMap[i] = item
|
|
429
|
-
i ++
|
|
430
|
-
}
|
|
431
|
-
_cmdMap = cmdMap
|
|
432
|
-
}
|
|
433
|
-
|
|
434
417
|
function listCmd() {
|
|
435
418
|
let items = Object.values(_cmdMap)
|
|
436
419
|
.filter(item => _fs.existsSync(getFullPath(item)))
|
|
@@ -542,18 +525,14 @@ async function _wrapperInput(str) {
|
|
|
542
525
|
if (!text) {
|
|
543
526
|
text = '$context';
|
|
544
527
|
}
|
|
545
|
-
let
|
|
546
|
-
let result = await evalText('return ' + items[0])
|
|
528
|
+
let result = await evalText('return ' + text)
|
|
547
529
|
if (!result || typeof result === 'string' || Object.keys(result).length === 0) {
|
|
548
530
|
console.nable([getInfo(result)])
|
|
549
531
|
return
|
|
550
532
|
}
|
|
551
533
|
let rows = []
|
|
552
|
-
let matchs = items.slice(1)
|
|
553
534
|
for (let key of Object.keys(result)) {
|
|
554
|
-
|
|
555
|
-
rows.push(getInfo(result[key], key))
|
|
556
|
-
}
|
|
535
|
+
rows.push(getInfo(result[key], key))
|
|
557
536
|
}
|
|
558
537
|
if (rows.length === 0) {
|
|
559
538
|
warn("no items")
|
|
@@ -576,7 +555,6 @@ async function _wrapperInput(str) {
|
|
|
576
555
|
} else {
|
|
577
556
|
let strs = str.split(/\s+/)
|
|
578
557
|
if (_cmdMap[strs[0]]) {
|
|
579
|
-
putHis(_cmdMap[strs[0]])
|
|
580
558
|
let path = getFullPath(_cmdMap[strs[0]])
|
|
581
559
|
let uniqueName = trim(_cmdMap[strs[0]]);
|
|
582
560
|
let fileName = parseUniqueName(uniqueName)[1]
|
|
@@ -714,7 +692,7 @@ const keywordDef = {
|
|
|
714
692
|
exeFn: (args) => {
|
|
715
693
|
help()
|
|
716
694
|
},
|
|
717
|
-
short: '
|
|
695
|
+
short: 'h'
|
|
718
696
|
},
|
|
719
697
|
list: {
|
|
720
698
|
comment: '查看文件列表',
|
|
@@ -725,7 +703,7 @@ const keywordDef = {
|
|
|
725
703
|
listCmd()
|
|
726
704
|
},
|
|
727
705
|
args: {
|
|
728
|
-
queryParams: '
|
|
706
|
+
queryParams: '字符串匹配,[,]代表全部,关键字可以省略'
|
|
729
707
|
},
|
|
730
708
|
short: 'l'
|
|
731
709
|
},
|
|
@@ -888,14 +866,6 @@ const keywordDef = {
|
|
|
888
866
|
// },
|
|
889
867
|
// short: 'd'
|
|
890
868
|
// },
|
|
891
|
-
history: {
|
|
892
|
-
comment: '查看执行记录',
|
|
893
|
-
exeFn: (args) => {
|
|
894
|
-
hisToCmdMap()
|
|
895
|
-
listCmd()
|
|
896
|
-
},
|
|
897
|
-
short: 'h'
|
|
898
|
-
},
|
|
899
869
|
file: {
|
|
900
870
|
comment: '工作文件模式',
|
|
901
871
|
exeFn: async (args) => {
|
|
@@ -1024,6 +994,17 @@ const keywordDef = {
|
|
|
1024
994
|
process.exit(0)
|
|
1025
995
|
},
|
|
1026
996
|
short: 'q'
|
|
997
|
+
},
|
|
998
|
+
repl: {
|
|
999
|
+
comment: '交互式界面',
|
|
1000
|
+
exeFn: (args) => {
|
|
1001
|
+
_noAppendNextLine = false
|
|
1002
|
+
console.log(warnStr("You can start with .help, use * to expand context"))
|
|
1003
|
+
if (Object.keys(_cmdMap).length > 0) {
|
|
1004
|
+
listCmd()
|
|
1005
|
+
}
|
|
1006
|
+
},
|
|
1007
|
+
short: 'p'
|
|
1027
1008
|
}
|
|
1028
1009
|
}
|
|
1029
1010
|
|
|
@@ -1179,7 +1160,9 @@ function initWorkspace(space) {
|
|
|
1179
1160
|
if (!$workspaceMap[current]) {
|
|
1180
1161
|
workspace = 'local'
|
|
1181
1162
|
}
|
|
1182
|
-
|
|
1163
|
+
if (workspace !== current) {
|
|
1164
|
+
setConfig("workspace", workspace)
|
|
1165
|
+
}
|
|
1183
1166
|
global.$defaultSpace = workspace;
|
|
1184
1167
|
}
|
|
1185
1168
|
|
|
@@ -1511,6 +1494,8 @@ async function _requireSource(currSpace, cmdMatchStr, printLog = false) {
|
|
|
1511
1494
|
result = async (argsStr) => {
|
|
1512
1495
|
return await runCmd(trim(argsStr), uniqueName, text)
|
|
1513
1496
|
}
|
|
1497
|
+
} else {
|
|
1498
|
+
result = text;
|
|
1514
1499
|
}
|
|
1515
1500
|
if (!vl(result)) {
|
|
1516
1501
|
if (nullable) {
|
package/index.js
CHANGED
package/package.json
CHANGED
package/util.js
CHANGED
|
@@ -399,7 +399,7 @@ function aesDecipher(str, key){
|
|
|
399
399
|
}
|
|
400
400
|
}
|
|
401
401
|
|
|
402
|
-
function getConfig(key, defaultVal) {
|
|
402
|
+
function getConfig(key, defaultVal = null) {
|
|
403
403
|
if (typeof defaultVal === "string") {
|
|
404
404
|
defaultVal = trim(defaultVal)
|
|
405
405
|
}
|
|
@@ -414,7 +414,7 @@ function getConfig(key, defaultVal) {
|
|
|
414
414
|
return config
|
|
415
415
|
}
|
|
416
416
|
let writeFlag = false
|
|
417
|
-
if (!(key in config)
|
|
417
|
+
if (!(key in config)) {
|
|
418
418
|
writeFlag = true
|
|
419
419
|
config[key] = defaultVal
|
|
420
420
|
}
|
package/cmd/configServer.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
let {$config, run, lisPid} = require('../util')
|
|
3
|
-
|
|
4
|
-
const server = require('server');
|
|
5
|
-
let address = require('address');
|
|
6
|
-
const { get } = server.router;
|
|
7
|
-
const {send} = server.reply
|
|
8
|
-
|
|
9
|
-
let port = Number(process.argv[2] || 9563 )
|
|
10
|
-
let router = [
|
|
11
|
-
get('/', () => {
|
|
12
|
-
return send($config.localConfig)
|
|
13
|
-
}),
|
|
14
|
-
get('/:key', (ctx) => {
|
|
15
|
-
if (!$config.localConfig.hasOwnProperty(ctx.params.key)) {
|
|
16
|
-
return send(null)
|
|
17
|
-
}
|
|
18
|
-
return send($config.getLocal(ctx.params.key))
|
|
19
|
-
})
|
|
20
|
-
]
|
|
21
|
-
|
|
22
|
-
lisPid('configServer_' + port)
|
|
23
|
-
|
|
24
|
-
run(async () => {
|
|
25
|
-
await $config.build()
|
|
26
|
-
await server({
|
|
27
|
-
port
|
|
28
|
-
},router);
|
|
29
|
-
console.log("http://localhost:"+port);
|
|
30
|
-
console.log("http://" + address.ip()+":"+port);
|
|
31
|
-
})
|
package/cmd/dirServer.js
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
let http = require('http');
|
|
3
|
-
let url=require('url');
|
|
4
|
-
let fs=require('fs');
|
|
5
|
-
let mine=require('../source/mine').types;
|
|
6
|
-
let path=require('path');
|
|
7
|
-
let address = require('address');
|
|
8
|
-
let urlencode = require('urlencode');
|
|
9
|
-
let {lisPid} = require('../util')
|
|
10
|
-
|
|
11
|
-
let server = http.createServer(function (request, response) {
|
|
12
|
-
let pathname = urlencode.decode(url.parse(request.url).pathname, "utf8");
|
|
13
|
-
let realPath = process.cwd() + pathname;
|
|
14
|
-
let ext = path.extname(realPath);
|
|
15
|
-
ext = ext ? ext.slice(1) : 'unknown';
|
|
16
|
-
if (fs.existsSync(realPath)) {
|
|
17
|
-
if (fs.statSync(realPath).isFile()) {
|
|
18
|
-
fs.readFile(realPath, "binary", function (err, file) {
|
|
19
|
-
if (err) {
|
|
20
|
-
response.writeHead(500, {
|
|
21
|
-
'Content-Type': 'text/plain'
|
|
22
|
-
});
|
|
23
|
-
response.end(err);
|
|
24
|
-
} else {
|
|
25
|
-
let contentType = mine[ext] || "text/plain";
|
|
26
|
-
response.writeHead(200, {
|
|
27
|
-
'Content-Type': contentType
|
|
28
|
-
});
|
|
29
|
-
response.write(file, "binary");
|
|
30
|
-
response.end();
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
} else {
|
|
34
|
-
let paths = fs.readdirSync(realPath)
|
|
35
|
-
response.writeHead(200, {
|
|
36
|
-
'Content-Type': 'text/html'
|
|
37
|
-
});
|
|
38
|
-
response.write('<head><meta charset="utf-8"/></head>');
|
|
39
|
-
paths.forEach(path => {
|
|
40
|
-
response.write(`
|
|
41
|
-
<a href="/${(request.url + '/').replace(/^\/+/, '')}${path}">${path}</a><br/>
|
|
42
|
-
`)
|
|
43
|
-
})
|
|
44
|
-
response.end();
|
|
45
|
-
}
|
|
46
|
-
} else {
|
|
47
|
-
response.writeHead(404, {
|
|
48
|
-
'Content-Type': 'text/plain'
|
|
49
|
-
});
|
|
50
|
-
response.write("This request URL " + pathname + " was not found on this server.");
|
|
51
|
-
response.end();
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
let port = process.argv[2] || 8088;
|
|
56
|
-
server.listen(port);
|
|
57
|
-
|
|
58
|
-
console.log("http://localhost:"+port);
|
|
59
|
-
console.log("http://" + address.ip()+":"+port);
|
|
60
|
-
|
|
61
|
-
lisPid('dirServer_' + port)
|
package/cmd/ethDataServer.js
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
let {getPrice, eFn, lisPid} = require('../util')
|
|
3
|
-
let Web3 = require('web3');
|
|
4
|
-
let web3 = new Web3("https://http-mainnet-node.huobichain.com");
|
|
5
|
-
web3.eth.transactionPollingTimeout = 49
|
|
6
|
-
global.web3 = web3
|
|
7
|
-
const server = require('server');
|
|
8
|
-
let address = require('address');
|
|
9
|
-
|
|
10
|
-
let usdt = '0xa71edc38d189767582c38a3145b5873052c3e47a'
|
|
11
|
-
let wht = '0x5545153ccfca01fbd7dd11c0b23ba694d9509a6f'
|
|
12
|
-
let mdxFact = '0xb0b670fc1F7724119963018DB0BfA86aDb22d941'
|
|
13
|
-
|
|
14
|
-
const { get } = server.router;
|
|
15
|
-
let port = 9589
|
|
16
|
-
|
|
17
|
-
let data = {
|
|
18
|
-
gasList: [],
|
|
19
|
-
htPrice: 0,
|
|
20
|
-
cost: 0,
|
|
21
|
-
timestamp: 0
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
let router = [
|
|
25
|
-
get('/', ctx => {
|
|
26
|
-
return data
|
|
27
|
-
})
|
|
28
|
-
]
|
|
29
|
-
|
|
30
|
-
lisPid('ethDataServer_' + port)
|
|
31
|
-
|
|
32
|
-
setTimeout(() => {
|
|
33
|
-
refreshData().catch()
|
|
34
|
-
server({port},router);
|
|
35
|
-
console.log("http://localhost:"+port);
|
|
36
|
-
console.log("http://" + address.ip()+":"+port);
|
|
37
|
-
}, 1000 * 5)
|
|
38
|
-
|
|
39
|
-
async function refreshData() {
|
|
40
|
-
let time = Date.now()
|
|
41
|
-
try {
|
|
42
|
-
data.htPrice = await getPrice(wht, usdt, mdxFact);
|
|
43
|
-
await refreshGasList()
|
|
44
|
-
} catch (e) {
|
|
45
|
-
console.log(String(e))
|
|
46
|
-
} finally {
|
|
47
|
-
let cost = Date.now() - time
|
|
48
|
-
console.log('Refresh Data Cost: ' + cost)
|
|
49
|
-
data.cost = cost
|
|
50
|
-
data.timestamp = Date.now()
|
|
51
|
-
}
|
|
52
|
-
setTimeout(() => refreshData(), 1000)
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
async function refreshGasList() {
|
|
56
|
-
let blockInfo = await web3.eth.getBlock("pending")
|
|
57
|
-
if (blockInfo != null) {
|
|
58
|
-
let map = {}
|
|
59
|
-
let items = []
|
|
60
|
-
for (let txHash of blockInfo.transactions) {
|
|
61
|
-
items.push(eFn(async (txHash) => {
|
|
62
|
-
let rawTransaction = await web3.eth.getTransaction(txHash);
|
|
63
|
-
if (rawTransaction) {
|
|
64
|
-
map[Number(rawTransaction.gasPrice) / (1000 * 1000 * 1000)] = true
|
|
65
|
-
}
|
|
66
|
-
}, txHash))
|
|
67
|
-
}
|
|
68
|
-
await Promise.all(items)
|
|
69
|
-
let list = Object.keys(map)
|
|
70
|
-
list = list.sort((a, b) => Number(b) - Number(a));
|
|
71
|
-
list = list.slice(0, 10)
|
|
72
|
-
|
|
73
|
-
if (list.length > 0) {
|
|
74
|
-
data.gasList = list
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
package/cmd/mockServer.js
DELETED
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
let fs = require('fs')
|
|
3
|
-
const server = require('server');
|
|
4
|
-
let address = require('address');
|
|
5
|
-
let {lisPid, getLibDataDir, trim, fileCleaner, getCbText} = require('../util')
|
|
6
|
-
let libRoot = getLibDataDir()
|
|
7
|
-
let home = libRoot + '/mock'
|
|
8
|
-
let readline = require('readline')
|
|
9
|
-
try {
|
|
10
|
-
fs.mkdirSync(home)
|
|
11
|
-
} catch (e) {}
|
|
12
|
-
const { get, post } = server.router;
|
|
13
|
-
let mockServerLog = libRoot + '/mockServer.log'
|
|
14
|
-
let port = 9549
|
|
15
|
-
let cmd = {
|
|
16
|
-
path,
|
|
17
|
-
start
|
|
18
|
-
}
|
|
19
|
-
if (!cmd[trim(process.argv[2])]) {
|
|
20
|
-
console.log(`ARGS EXAMPLE:
|
|
21
|
-
path
|
|
22
|
-
start [9549]`)
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
cmd[trim(process.argv[2])]()
|
|
26
|
-
|
|
27
|
-
function getPathMap() {
|
|
28
|
-
let pathMap = {}
|
|
29
|
-
let i = 1
|
|
30
|
-
fs.readdirSync(home).forEach(item => {
|
|
31
|
-
pathMap[String(i)] = item
|
|
32
|
-
i ++
|
|
33
|
-
})
|
|
34
|
-
return pathMap
|
|
35
|
-
}
|
|
36
|
-
function path(){
|
|
37
|
-
let map = getPathMap()
|
|
38
|
-
Object.keys(map).forEach(i => {
|
|
39
|
-
console.log(i + ": " + map[i].replace(/_-sep-_/g, '/'))
|
|
40
|
-
})
|
|
41
|
-
|
|
42
|
-
let rl = readline.createInterface({
|
|
43
|
-
input: process.stdin,
|
|
44
|
-
output: process.stdout
|
|
45
|
-
})
|
|
46
|
-
process.stdout.write("> ")
|
|
47
|
-
rl.on('line', async (str) => {
|
|
48
|
-
str = trim(str)
|
|
49
|
-
if (map[str]) {
|
|
50
|
-
try {
|
|
51
|
-
console.log(String(fs.readFileSync(home + '/' + map[str].replace(/\//g, '_-sep-_'))))
|
|
52
|
-
} catch (e) {}
|
|
53
|
-
} else {
|
|
54
|
-
if (str) {
|
|
55
|
-
let url = `${home}/${str.replace(/\//g, '_-sep-_')}`
|
|
56
|
-
let textStr = await getCbText()
|
|
57
|
-
if (!textStr) {
|
|
58
|
-
try {
|
|
59
|
-
fs.unlinkSync(url)
|
|
60
|
-
} catch (e) {}
|
|
61
|
-
} else {
|
|
62
|
-
fs.writeFileSync(url, textStr)
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
map = getPathMap()
|
|
67
|
-
Object.keys(map).forEach(i => {
|
|
68
|
-
console.log(i + ": " + map[i].replace(/_-sep-_/g, '/'))
|
|
69
|
-
})
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
process.stdout.write("> ")
|
|
73
|
-
})
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
function start() {
|
|
77
|
-
if (process.argv[3]) {
|
|
78
|
-
port = trim(process.argv[3])
|
|
79
|
-
}
|
|
80
|
-
let router = [
|
|
81
|
-
get('/', ctx => {
|
|
82
|
-
let map = getPathMap();
|
|
83
|
-
return Object.values(map).map(item => item.replace(/_-sep-_/g, '/'))
|
|
84
|
-
}),
|
|
85
|
-
post('/', ctx => {
|
|
86
|
-
log(ctx.data);
|
|
87
|
-
let map = getPathMap();
|
|
88
|
-
return Object.values(map).map(item => item.replace(/_-sep-_/g, '/'))
|
|
89
|
-
})
|
|
90
|
-
]
|
|
91
|
-
fs.readdirSync(home).forEach(item => {
|
|
92
|
-
let fn = ctx => {
|
|
93
|
-
let text = fs.readFileSync(`${home}/${item}`)
|
|
94
|
-
try {
|
|
95
|
-
(eval(`(()=>{${text}})()`))
|
|
96
|
-
return ((typeof ctx.return === 'object') ? ctx.return : String(ctx.return)) || {}
|
|
97
|
-
} catch (e) {
|
|
98
|
-
log(e)
|
|
99
|
-
return String(e)
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
let url = item.replace(/_-sep-_/g, '/')
|
|
103
|
-
router.push(get('/' + url, fn))
|
|
104
|
-
router.push(post('/' + url, fn))
|
|
105
|
-
})
|
|
106
|
-
|
|
107
|
-
fileCleaner(mockServerLog)
|
|
108
|
-
lisPid('mockServer_' + port)
|
|
109
|
-
|
|
110
|
-
console.log("http://localhost:"+port);
|
|
111
|
-
console.log("http://" + address.ip()+":"+port);
|
|
112
|
-
setTimeout(() => {
|
|
113
|
-
server({port},router);
|
|
114
|
-
}, 1000 * 5)
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
function log(s) {
|
|
118
|
-
fs.appendFileSync(mockServerLog, s + '\n')
|
|
119
|
-
}
|
package/cmd/see.js
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
let fs = require('fs');
|
|
3
|
-
let path = require('path')
|
|
4
|
-
let {getLibDataDir, cleanFile} = require("../util")
|
|
5
|
-
let readline = require('readline');
|
|
6
|
-
let gua = require('../source/gua');
|
|
7
|
-
let posJson = require('../source/pos');
|
|
8
|
-
let desc = process.argv.splice(2).join(" ");
|
|
9
|
-
let dataLibDir = getLibDataDir()
|
|
10
|
-
let get = n => Math.floor(Math.random()*n) + 1;
|
|
11
|
-
let down = get(8);
|
|
12
|
-
let up = get(8);
|
|
13
|
-
let pos = get(6);
|
|
14
|
-
let result = down + "," + up + "," + pos;
|
|
15
|
-
console.log(result);
|
|
16
|
-
|
|
17
|
-
function save(content) {
|
|
18
|
-
let seeTxt = dataLibDir + "/see.txt";
|
|
19
|
-
fs.writeFileSync(seeTxt, content,
|
|
20
|
-
{ encoding: 'utf8', flag: 'a' });
|
|
21
|
-
cleanFile(seeTxt)
|
|
22
|
-
}
|
|
23
|
-
if (desc) save(new Date() + "\t" + result + "\t" + desc + "\n");
|
|
24
|
-
|
|
25
|
-
let key = `${gua[String(up)]}上${gua[String(down)]}下`;
|
|
26
|
-
let changeStream = fs.createReadStream(path.resolve(__dirname, '../source/change.txt'));
|
|
27
|
-
let changeLine = readline.createInterface({
|
|
28
|
-
input:changeStream
|
|
29
|
-
});
|
|
30
|
-
let found = false;
|
|
31
|
-
let use = false;
|
|
32
|
-
let text = '';
|
|
33
|
-
changeLine.on('line',function (line) {
|
|
34
|
-
line = line.trim().replace(/-/g, "");
|
|
35
|
-
if (!line) return;
|
|
36
|
-
|
|
37
|
-
if (line.match(/^初[六九]/)) {
|
|
38
|
-
use = false;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
let two = line.substr(0, 2);
|
|
42
|
-
if (use && (two.indexOf("六") !== -1 || two.indexOf("九") !== -1)) {
|
|
43
|
-
use = false;
|
|
44
|
-
}
|
|
45
|
-
if (two.indexOf(posJson[String(pos)]) !== -1
|
|
46
|
-
&& (two.indexOf("六") !== -1 || two.indexOf("九") !== -1)) {
|
|
47
|
-
use = true;
|
|
48
|
-
}
|
|
49
|
-
if (line.match(/^第[一二三四五六七八九十]/)){
|
|
50
|
-
found = false;
|
|
51
|
-
}
|
|
52
|
-
if (found && use) {
|
|
53
|
-
text += line + "\n";
|
|
54
|
-
}
|
|
55
|
-
if (line.indexOf(key) !== -1) {
|
|
56
|
-
found = true;
|
|
57
|
-
use = true;
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
changeLine.on('close', () => {
|
|
62
|
-
console.log(text);
|
|
63
|
-
if (desc) save(text);
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
package/cmd/solCd.js
DELETED
package/cmd/solComplie.js
DELETED
package/cmd/solDeploy.js
DELETED
package/cmd/solTest.js
DELETED
package/cmd/solTt.js
DELETED
package/cmd/staticServer.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
const server = require('server');
|
|
3
|
-
let address = require('address');
|
|
4
|
-
let {lisPid} = require('../util')
|
|
5
|
-
|
|
6
|
-
let port = process.argv[2] || 9527
|
|
7
|
-
let dir = process.cwd()
|
|
8
|
-
let serverInfo = {
|
|
9
|
-
port: port,
|
|
10
|
-
public: dir
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
server(serverInfo);
|
|
14
|
-
|
|
15
|
-
console.log("http://localhost:"+port);
|
|
16
|
-
console.log("http://" + address.ip()+":"+port);
|
|
17
|
-
|
|
18
|
-
lisPid('staticServer_' + port)
|