Skip to content

Commit d09dcc2

Browse files
save file
1 parent da14a5e commit d09dcc2

1 file changed

Lines changed: 57 additions & 10 deletions

File tree

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

Lines changed: 57 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -434,23 +434,27 @@
434434
if(type=='opt'){
435435

436436
switch(opt.id){
437-
case 'https-server' : install['https-server']();
438-
break;
437+
438+
case 'https-server' : menu_callback['https-server'](); break;
439+
case 'save-snapshot' : menu_callback['save-snapshot'](); break;
440+
case 'load-snapshot' : menu_callback('load-snapshot'](); break;
441+
439442
}//switch
440443

441444
}
442445

443446
}//more
444447

445448

446-
install['https-server'] = async function(){
449+
menu_callback['https-server'] = async function(){
447450

448451
if(cwd===null){
449-
log.red('can only install https-server relative to workdir');
452+
term.writeln.red('can only install https-server relative to workdir');
450453
return;
451454
}
452455

453-
log.green('installing https-server');
456+
term.writeln('');
457+
term.writeln.green('installing https-server');
454458

455459
var mod = await import('https://code.ext-code.com/nodejs/servers/https-server/create-archive.m.js');
456460

@@ -485,18 +489,63 @@
485489
process.output.pipeTo(stream)
486490
var code = await process.exit;
487491
if(code!=0){
488-
log.red('an error ocurred : '+code);
492+
term.writeln.red('an error ocurred exit code : '+code);
489493
}else{
490-
log.green('done.');
494+
term.writeln.green('done.');
491495
}
492-
term.writeln('done.');
493496

494497
//await input.write('\u0003'); // Sends Ctrl+C to clear any junk
495498
await input.write('\n'); // Sends Enter to get a clean prompt
496499

497500
}//https-server
498501

499502

503+
menu_callback['save-snapshot'] = async function(){
504+
505+
if(cwd===null){
506+
term.writeln.red('can only save snapshot relative to workdir');
507+
return;
508+
}
509+
510+
term.writeln('');
511+
term.writeln.green('saving snapshot ...');
512+
513+
var data = await webcontainerInstance.export('dist',{format:'zip'});
514+
var zip = new Blob([data]);
515+
var file = {name:'snapshot.zip'};
516+
517+
complete.load(file,blob);
518+
519+
term.writeln.green('snapshot saved');
520+
521+
}//take-snapsht
522+
523+
524+
menu_callback['load-snapshot'] = async function(){
525+
526+
if(cwd===null){
527+
term.writeln.red('can only load snapshot relative to workdir');
528+
return;
529+
}
530+
if(!cur.blob){
531+
term.writeln.red('no blob available');
532+
return;
533+
}
534+
535+
term.writeln('');
536+
term.writeln.green('loading snapshot ...');
537+
538+
var blob = cur.blob;
539+
var mountPoint = cwd;
540+
541+
var result = await webcontainer.mount(blob,{mountPoint});
542+
console.log(result);
543+
544+
term.writeln.green('snapshot loaded');
545+
546+
}//restore-snapshot
547+
548+
500549
//:
501550

502551

@@ -747,8 +796,6 @@
747796

748797
}//for
749798

750-
term.writeln.green('Success!', 'The server is up.');
751-
term.writeln.red('Error:', 'Timber delivery delayed.');
752799

753800
//term.writeln('\x1b[1;31m THIS SHOULD BE BOLD RED \x1b[0m');
754801

0 commit comments

Comments
 (0)