installWeb function

Future<void> installWeb(
  1. List<String> args
)

Implementation

Future<void> installWeb(List<String> args) async {
  if (args.contains('-h') || args.contains('--help')) {
    stdout.writeln(_usage);
    return;
  }
  final from = _valueOf(args, '--from');
  final out = Directory(_valueOf(args, '--out') ?? _defaultOut);
  final force = args.contains('--force');

  final mtFrom = _valueOf(args, '--mt-from');
  final mtOut = Directory(_valueOf(args, '--mt-out') ?? 'web/cera_mt');

  final pubspec = await _readPubspec();
  await out.create(recursive: true);

  await _installWorker(out, force: force);
  if (from != null) {
    await _copyModule(Directory(from), out, force: force);
  } else {
    await _downloadModule(pubspec, out, force: force);
  }

  if (mtFrom != null) {
    await mtOut.create(recursive: true);
    await _copyModule(Directory(mtFrom), mtOut, force: force);
  }

  final url = _urlOf(out);
  final prefix = url.isEmpty ? '' : (url.endsWith('/') ? url : '$url/');
  stdout
    ..writeln()
    ..writeln('Installed into ${out.path}/')
    ..writeln()
    ..writeln('Point the engine at it if you changed --out:')
    ..writeln(
      '  Cera.openBytes(bytes, options: CeraOptions(web: CeraWebAssets(',
    )
    ..writeln("    workerUrl: '${prefix}cera_worker.js',")
    ..writeln("    moduleUrl: '${prefix}cera_wasm.js',")
    ..writeln('  )));');
}