readEnvFile function
Implementation
Future<Map<String, EnvVariable>> readEnvFile(File file) async {
final lines = await file.readAsLines();
final variables = <String, EnvVariable>{};
final fileName = file.path;
for (final line in lines) {
final trimmedLine = line.trim();
// Skip empty lines and comments
if (trimmedLine.isEmpty || trimmedLine.startsWith('#')) {
continue;
}
// Parse key=value pairs
final equalIndex = trimmedLine.indexOf('=');
if (equalIndex > 0) {
final key = trimmedLine.substring(0, equalIndex).trim();
final value = trimmedLine.substring(equalIndex + 1).trim();
// Remove quotes if present
var cleanValue = value;
if ((cleanValue.startsWith('"') && cleanValue.endsWith('"')) ||
(cleanValue.startsWith("'") && cleanValue.endsWith("'"))) {
cleanValue = cleanValue.substring(1, cleanValue.length - 1);
}
final type = inferType(cleanValue);
variables[key] = EnvVariable(key, cleanValue, type, {fileName});
}
}
return variables;
}