Skip to content

Commit e50aa2f

Browse files
save file
1 parent 99fd88d commit e50aa2f

1 file changed

Lines changed: 22 additions & 28 deletions

File tree

utils/misc/nodejs-terminal/v2.0/nodejs-terminal-v2.0.html

Lines changed: 22 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,7 @@
280280

281281
var term;
282282
var shell;
283+
var input;
283284
var user_dir;
284285
var cwd_abs;
285286
var cwd;
@@ -439,6 +440,11 @@
439440

440441
install['https-server'] = async function(){
441442

443+
if(cwd===null){
444+
log.red('can only install https-server relative to workdir');
445+
return;
446+
}
447+
442448
log.green('installing https-server');
443449

444450
var mod = await import('https://code.ext-code.com/nodejs/servers/https-server/create-archive.m.js');
@@ -454,10 +460,10 @@
454460

455461
path = path.slice(base.length);
456462
path = cwd+path;
457-
console.log(path,file);
458-
if(path){
463+
console.log(path);//,file);
464+
if(path.length>cwd.length){
459465
if(file.dir){
460-
await webcontainer.fs.mkdir(path);
466+
await webcontainer.fs.mkdir(path,{recursive:true});
461467
}else{
462468
//console.log("File:",path,file);
463469
//console.log("Content:", content);
@@ -469,9 +475,19 @@
469475
}//for
470476

471477

472-
await webcontainer.spawn('npm',['i'],{cwd});
478+
var process = await webcontainer.spawn('npm',['i'],{cwd,output:true});
479+
var stream = new WritableStream({write(data){term.write(data)}});
480+
process.output.pipeTo(stream)
481+
var code = await process.exit;
482+
if(code!=0){
483+
log.red('an error ocurred : '+code);
484+
}else{
485+
log.green('done.');
486+
}
487+
term.writeln('done.');
473488

474-
log.green('done.');
489+
//await input.write('\u0003'); // Sends Ctrl+C to clear any junk
490+
await input.write('\n'); // Sends Enter to get a clean prompt
475491

476492
}//https-server
477493

@@ -794,7 +810,7 @@
794810
});
795811
shell.output.pipeTo(output);
796812

797-
var input = shell.input.getWriter();
813+
input = shell.input.getWriter();
798814
term.onData(data=>input.write(data));
799815

800816
//term.resize();
@@ -803,28 +819,6 @@
803819
})();
804820

805821

806-
async function getShellCwd(shell){
807-
808-
return new Promise(resolve=>{
809-
810-
var decoder = new TextDecoder();
811-
var onData = data=>{
812-
813-
var text = decoder.decode(data);
814-
var line = text.trim();
815-
if(line.startsWith('/')){
816-
shell.output.off('data',onData);
817-
resolve(line);
818-
}
819-
820-
};
821-
822-
shell.output.on('data',onData);
823-
shell.input.write('pwd\n');
824-
825-
});
826-
827-
}//getShellCwd
828822

829823

830824

0 commit comments

Comments
 (0)