promptPlatforms static method

Future<List<Platform>> promptPlatforms()

Implementation

static Future<List<Platform>> promptPlatforms() async {
  print('? Select target platforms (enter numbers separated by commas):');
  print('  1. Android');
  print('  2. iOS');
  print('  3. Web');
  print('  4. macOS');
  print('  5. Windows');
  print('  6. Linux');

  stdout.write('Selected platforms (default: 1,2,3): ');
  final input = stdin.readLineSync()?.trim() ?? '';

  if (input.isEmpty) {
    return [Platform.android, Platform.ios, Platform.web];
  }

  final selectedNumbers = input.split(',').map((s) => int.tryParse(s.trim())).where((n) => n != null).toList();
  final platforms = <Platform>[];

  for (final number in selectedNumbers) {
    switch (number) {
      case 1:
        platforms.add(Platform.android);
        break;
      case 2:
        platforms.add(Platform.ios);
        break;
      case 3:
        platforms.add(Platform.web);
        break;
      case 4:
        platforms.add(Platform.macos);
        break;
      case 5:
        platforms.add(Platform.windows);
        break;
      case 6:
        platforms.add(Platform.linux);
        break;
    }
  }

  return platforms.isNotEmpty ? platforms : [Platform.android, Platform.ios, Platform.web];
}