scanEnvFiles function

Future<List<String>> scanEnvFiles(
  1. Directory directory
)

Scan for environment files in the specified directory (recursive)

Implementation

Future<List<String>> scanEnvFiles(Directory directory) async {
  final envFiles = <String>[];

  // First scan root directory
  await for (final entity in directory.list()) {
    if (entity is File) {
      final name = entity.path.split('/').last;
      // Look for .env, .env.*, but skip .env.example files
      if (name == '.env' ||
          (name.startsWith('.env.') && !name.endsWith('.example'))) {
        envFiles.add(entity.path);
      }
    }
  }

  // Also scan subdirectories regardless of root files
  await for (final entity in directory.list()) {
    if (entity is Directory) {
      final dirName = entity.path.split('/').last;
      // Skip common directories that shouldn't contain env files
      if (!_shouldSkipDirectory(dirName)) {
        final subDirFiles = await _scanDirectoryForEnvFiles(entity);
        envFiles.addAll(subDirFiles);
      }
    }
  }

  envFiles.sort(); // Ensure consistent ordering
  return envFiles;
}