promptForOverrides method

Future<Map<String, String>> promptForOverrides(
  1. List<DependencyInfo> dependencies
)

Prompt user for category overrides

Implementation

Future<Map<String, String>> promptForOverrides(
  List<DependencyInfo> dependencies,
) async {
  final Map<String, String> overrides = <String, String>{};

  print('\n${Strings.interactiveCategoryOverride}');
  print(Strings.overridePrompt);
  print('');

  int current = 0;
  for (final DependencyInfo dep in dependencies) {
    current++;

    final List<String> categories =
        await gemsIntegration.getPackageCategories(dep.name);

    final String suggestedCategory =
        categories.isNotEmpty ? categories.first : 'Utilities';

    print(
      '[$current/${dependencies.length}] ${dep.name} '
      '(suggested: $suggestedCategory)[Enter y to keep suggested]:',
    );
    final String input = stdin.readLineSync() ?? '';

    if (input.toLowerCase() == 'y') {
      // 'y' pressed → keep suggested category
      continue;
    }
    if (input.isEmpty) {
      // Enter pressed → keep suggested category
      continue;
    }

    if (input != suggestedCategory) {
      overrides[dep.name] = input;
      print('  → Override: ${dep.name} → $input');
    }
  }
  if (overrides.isNotEmpty) {
    print('\nšŸ“ Saving overrides to group-overrides.yaml...');
    await saveGroupOverrides(overrides);
  }

  return overrides;
}