handleScan function

void handleScan(
  1. String input,
  2. AtClient atClient,
  3. IOSink outputStream
)

Implementation

void handleScan(String input, AtClient atClient, IOSink outputStream) async {
  final parts = input.split(' ');
  final regex = parts.length > 1 ? parts.sublist(1).join(' ') : null;

  try {
    outputStream.writeln(cyan.wrap("Scanning for keys${regex != null ? ' with regex: $regex' : ''}..."));
    final keys = await getAtKeys(atClient, regex: regex);

    if (keys.isEmpty) {
      outputStream.writeln(lightYellow.wrap("No keys found"));
      return;
    }

    outputStream.writeln(green.wrap("\nFound ${keys.length} key(s):"));
    outputStream.writeln("${'#'.padRight(5)} | Key");
    outputStream.writeln("${'─' * 5}─┼─${'─' * 50}");

    for (int i = 0; i < keys.length; i++) {
      final indexStr = (i + 1).toString().padRight(5);
      outputStream.writeln("$indexStr | ${keys[i].toString()}");
    }

  } catch (e) {
    outputStream.writeln(red.wrap("Error scanning keys: $e"));
  }
}