|
434 | 434 | if(type=='opt'){ |
435 | 435 |
|
436 | 436 | 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 | + |
439 | 442 | }//switch |
440 | 443 |
|
441 | 444 | } |
442 | 445 |
|
443 | 446 | }//more |
444 | 447 |
|
445 | 448 |
|
446 | | - install['https-server'] = async function(){ |
| 449 | + menu_callback['https-server'] = async function(){ |
447 | 450 |
|
448 | 451 | 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'); |
450 | 453 | return; |
451 | 454 | } |
452 | 455 |
|
453 | | - log.green('installing https-server'); |
| 456 | + term.writeln(''); |
| 457 | + term.writeln.green('installing https-server'); |
454 | 458 |
|
455 | 459 | var mod = await import('https://code.ext-code.com/nodejs/servers/https-server/create-archive.m.js'); |
456 | 460 |
|
|
485 | 489 | process.output.pipeTo(stream) |
486 | 490 | var code = await process.exit; |
487 | 491 | if(code!=0){ |
488 | | - log.red('an error ocurred : '+code); |
| 492 | + term.writeln.red('an error ocurred exit code : '+code); |
489 | 493 | }else{ |
490 | | - log.green('done.'); |
| 494 | + term.writeln.green('done.'); |
491 | 495 | } |
492 | | - term.writeln('done.'); |
493 | 496 |
|
494 | 497 | //await input.write('\u0003'); // Sends Ctrl+C to clear any junk |
495 | 498 | await input.write('\n'); // Sends Enter to get a clean prompt |
496 | 499 |
|
497 | 500 | }//https-server |
498 | 501 |
|
499 | 502 |
|
| 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 | + |
500 | 549 | //: |
501 | 550 |
|
502 | 551 |
|
|
747 | 796 |
|
748 | 797 | }//for |
749 | 798 |
|
750 | | - term.writeln.green('Success!', 'The server is up.'); |
751 | | - term.writeln.red('Error:', 'Timber delivery delayed.'); |
752 | 799 |
|
753 | 800 | //term.writeln('\x1b[1;31m THIS SHOULD BE BOLD RED \x1b[0m'); |
754 | 801 |
|
|
0 commit comments