listProfiles method

Future<List<ProfileInfo>> listProfiles()

List all saved profiles

Implementation

Future<List<ProfileInfo>> listProfiles() async {
  final dir = Directory(profilesDir);

  if (!await dir.exists()) {
    return [];
  }

  final profiles = <ProfileInfo>[];

  await for (final FileSystemEntity entity in dir.list()) {
    if (entity is File && entity.path.endsWith('.yaml')) {
      final name = p.basenameWithoutExtension(entity.path);
      final stat = await entity.stat();

      try {
        final config = await loadProfile(name);
        profiles.add(ProfileInfo(
          name: name,
          path: entity.path,
          lastModified: stat.modified,
          config: config,
        ));
      } catch (e) {
        // Skip invalid profiles
        warn('Skipping invalid profile: $name ($e)');
      }
    }
  }

  // Sort by name
  profiles.sort((ProfileInfo a, ProfileInfo b) => a.name.compareTo(b.name));
  return profiles;
}