generateFlavorFiles method

void generateFlavorFiles(
  1. FlavorConfig config
)

Implementation

void generateFlavorFiles(FlavorConfig config) {
  final root = ConfigService.root;
  for (final flavor in config.flavors) {
    final envFile = File(p.join(root, '.env.$flavor'));
    final values = config.flavorValues[flavor];
    final hasValues = values != null && values.isNotEmpty;

    // If no in-memory values and file already exists, leave it alone.
    // This happens when ConfigService.load() is called in ENV mode
    // (values are not persisted in flavor_cli.yaml).
    if (!hasValues && envFile.existsSync()) continue;

    // Use provided values or generate defaults for new flavors.
    final effectiveValues = hasValues
        ? values
        : {
            for (final entry in config.fields.entries)
              entry.key: TypeUtils.getDefaultTypedValueForType(entry.value),
          };

    final content = EnvUtils.generateEnvContent(
      effectiveValues,
      config.fields,
    );
    envFile.writeAsStringSync(content);
  }
}