updateEnvFile method

void updateEnvFile(
  1. String flavor,
  2. Map<String, dynamic> values
)

Implementation

void updateEnvFile(String flavor, Map<String, dynamic> values) {
  final root = ConfigService.root;
  final envFile = File(p.join(root, '.env.$flavor'));

  Map<String, String> existingValues = {};
  if (envFile.existsSync()) {
    existingValues = EnvUtils.parseEnvFile(envFile.readAsStringSync());
  }

  // Merge values
  for (final entry in values.entries) {
    existingValues[EnvUtils.toSnakeCase(entry.key)] = entry.value.toString();
  }

  // Load fields to know if some values need double quotes etc.
  final config = ConfigService.loadLenient();
  final fields = config?.fields ?? {};

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