parseEnvFile method
Parses an environment file into a Map.
Implementation
Future<Map<String, String>> parseEnvFile(File envFile) async {
if (!envFile.existsSync()) {
return {};
}
try {
final envVars = <String, String>{};
final lines = await envFile.readAsLines();
for (final line in lines) {
final trimmed = line.trim();
if (trimmed.isEmpty || trimmed.startsWith('#')) continue;
final parts = trimmed.split('=');
if (parts.length >= 2) {
final key = parts[0].trim();
final value = parts.sublist(1).join('=').trim();
// Remove surrounding quotes
envVars[key] = value.replaceAll(RegExp(r'^"|"$'), '');
}
}
return envVars;
} catch (e, s) {
throw BuildException(
'Failed to read environment file at "${envFile.path}"',
fix:
'Ensure the file is readable and properly formatted as KEY=VALUE pairs.',
originalStackTrace: s,
);
}
}