@makano/rew 1.2.58 → 1.2.59
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/lib/rew/cli/cli.js +31 -3
- package/lib/rew/cli/utils.js +23 -3
- package/package.json +1 -1
package/lib/rew/cli/cli.js
CHANGED
|
@@ -5,7 +5,7 @@ const path = require('path');
|
|
|
5
5
|
const { hideBin } = require('yargs/helpers');
|
|
6
6
|
const { execSync } = require('child_process');
|
|
7
7
|
const utils = require('./utils');
|
|
8
|
-
const { existsSync, readFileSync, writeFileSync, mkdirSync, statSync } = require('fs');
|
|
8
|
+
const { existsSync, readFileSync, writeFileSync, mkdirSync, statSync, unlinkSync } = require('fs');
|
|
9
9
|
const { log } = require('./log');
|
|
10
10
|
const os = require('os');
|
|
11
11
|
const crypto = require('crypto');
|
|
@@ -18,6 +18,7 @@ const colors = require('colors');
|
|
|
18
18
|
const { req } = require('../misc/req');
|
|
19
19
|
const { gen_key } = require('../misc/bin');
|
|
20
20
|
const { REW_FILE_TYPE } = require('../const/ext');
|
|
21
|
+
const { generateRandomID } = require('../functions/id');
|
|
21
22
|
|
|
22
23
|
if (!existsSync(CONFIG_PATH) || !existsSync(CONFIG_PATH + '/repos.yaml')) {
|
|
23
24
|
mkdirSync(CONFIG_PATH, { recursive: true });
|
|
@@ -62,9 +63,36 @@ yargs(hideBin(process.argv))
|
|
|
62
63
|
log('File not found:'.red.bold, argv.file, ':end');
|
|
63
64
|
return;
|
|
64
65
|
}
|
|
65
|
-
utils.runFileWithArgv(filePath, { onlyCompile: argv.compile, watch: argv.watch });
|
|
66
|
+
utils.runFileWithArgv(filePath, { async: !process.stdin.isTTY, onlyCompile: argv.compile, watch: argv.watch });
|
|
66
67
|
},
|
|
67
68
|
)
|
|
69
|
+
.command(
|
|
70
|
+
'exec [code]',
|
|
71
|
+
'Executes in REPL',
|
|
72
|
+
(yargs) => {
|
|
73
|
+
yargs
|
|
74
|
+
.option('compile', {
|
|
75
|
+
alias: 'c',
|
|
76
|
+
describe: 'Compile and output the javascript',
|
|
77
|
+
type: 'boolean',
|
|
78
|
+
});
|
|
79
|
+
},
|
|
80
|
+
async (argv) => {
|
|
81
|
+
const replFile = '/tmp/rew-'+generateRandomID()+'-'+Date.now()+'.coffee';
|
|
82
|
+
let code = argv.code;
|
|
83
|
+
if(!process.stdin.isTTY) {
|
|
84
|
+
code = await utils.getAllPipeInput();
|
|
85
|
+
}
|
|
86
|
+
writeFileSync(replFile, code);
|
|
87
|
+
try{
|
|
88
|
+
utils.runFileWithArgv(replFile, { async: !process.stdin.isTTY, onlyCompile: argv.compile });
|
|
89
|
+
} catch(e){
|
|
90
|
+
console.error(e);
|
|
91
|
+
} finally {
|
|
92
|
+
unlinkSync(replFile);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
)
|
|
68
96
|
.command(
|
|
69
97
|
'conf <command> [path] [key] [value]',
|
|
70
98
|
'Configuration management',
|
|
@@ -363,4 +391,4 @@ yargs(hideBin(process.argv))
|
|
|
363
391
|
utils.build(argv);
|
|
364
392
|
},
|
|
365
393
|
)
|
|
366
|
-
.help(!isFileGiven).argv;
|
|
394
|
+
.help(!isFileGiven).argv;
|
package/lib/rew/cli/utils.js
CHANGED
|
@@ -36,7 +36,7 @@ module.exports = {
|
|
|
36
36
|
|
|
37
37
|
const runIt = () => {
|
|
38
38
|
if (options.watch) console.clear();
|
|
39
|
-
const imports = execRewFile(filePath, [filePath, ...(argv || [])], { onlyCompile: options?.onlyCompile });
|
|
39
|
+
const imports = execRewFile(filePath, [filePath, ...(argv || [])], { onlyCompile: options?.onlyCompile, async: options?.async });
|
|
40
40
|
if (options.watch) {
|
|
41
41
|
imports.forEach((file) => {
|
|
42
42
|
watchIt(file);
|
|
@@ -48,7 +48,7 @@ module.exports = {
|
|
|
48
48
|
runIt();
|
|
49
49
|
},
|
|
50
50
|
runFileWithArgv(filePath, options = {}, cargv) {
|
|
51
|
-
|
|
51
|
+
let argv = cargv || process.argv;
|
|
52
52
|
argv.shift();
|
|
53
53
|
if (argv[0].endsWith(REW_FILE_TYPE.EXTENSION) || argv[0].endsWith('.coffee')) {
|
|
54
54
|
if (argv[1] == 'run') {
|
|
@@ -57,6 +57,12 @@ module.exports = {
|
|
|
57
57
|
argv.splice(0, 3);
|
|
58
58
|
} else argv.splice(0, 2);
|
|
59
59
|
}
|
|
60
|
+
if (argv[1] == 'exec') {
|
|
61
|
+
argv.splice(0, 2);
|
|
62
|
+
}
|
|
63
|
+
if (argv.includes('--')) {
|
|
64
|
+
argv = argv.slice(argv.indexOf('--') + 1, argv.length);
|
|
65
|
+
}
|
|
60
66
|
this.runFile(filePath, options, argv)
|
|
61
67
|
},
|
|
62
68
|
conf(command, fullPath, key, value) {
|
|
@@ -190,7 +196,7 @@ module.exports = {
|
|
|
190
196
|
});
|
|
191
197
|
r = path.resolve(root, c.exec.entry.replace(new RegExp(path.extname(c.exec.entry).replace('.', '\\.') + '$'), options.translate ? '.js' : '.qrew'));
|
|
192
198
|
}
|
|
193
|
-
this.runFileWithArgv(r);
|
|
199
|
+
this.runFileWithArgv(r, { async: !process.stdin.isTTY });
|
|
194
200
|
}
|
|
195
201
|
};
|
|
196
202
|
|
|
@@ -542,5 +548,19 @@ module.exports = {
|
|
|
542
548
|
fs.mkdirSync(binpath, { recursive: true });
|
|
543
549
|
fs.mkdirSync(cachepath, { recursive: true });
|
|
544
550
|
fs.mkdirSync(logspath, { recursive: true });
|
|
551
|
+
},
|
|
552
|
+
getAllPipeInput(){
|
|
553
|
+
return new Promise((resolve) => {
|
|
554
|
+
let data = '';
|
|
555
|
+
process.stdin.setEncoding('utf8');
|
|
556
|
+
|
|
557
|
+
process.stdin.on('data', (chunk) => {
|
|
558
|
+
data += chunk;
|
|
559
|
+
});
|
|
560
|
+
|
|
561
|
+
process.stdin.on('end', () => {
|
|
562
|
+
resolve(data);
|
|
563
|
+
});
|
|
564
|
+
});
|
|
545
565
|
}
|
|
546
566
|
};
|