runStack function

Future<void> runStack(
  1. List<String> args,
  2. Stack build(), {
  3. String out = 'tf-out',
})

The entry point of a project with one Stack: writes it to out.

// bin/run_stack.dart
final class OrdersStack extends Stack {
  OrdersStack() : super(providers: const [TimeProvider()]);
}

Future<void> main(List<String> args) => runStack(args, OrdersStack.new);

dart run bin/infra.dart writes tf-out/main.tf.json; terradart plan and terradart apply run the engine there.

Implementation

Future<void> runStack(
  List<String> args,
  Stack Function() build, {
  String out = 'tf-out',
}) async {
  final stack = build();
  await stack.writeTo(out);
  stdout.writeln('synthesized $out/main.tf.json');
  await _writeManifest(
    environments: null,
    selected: null,
    roots: [_root(null, out, null, const [], stack)],
  );
}