cleanupOldDebugLogs function

Future<CleanupResult> cleanupOldDebugLogs()

Clean up old debug log files from ~/.neomage/debug/. Preserves the 'latest' symlink.

Implementation

Future<CleanupResult> cleanupOldDebugLogs() async {
  final cutoffDate = getCutoffDate();
  var result = const CleanupResult();
  final debugDir = p.join(_getNeomageConfigHomeDir(), 'debug');

  List<FileSystemEntity> dirents;
  try {
    dirents = await Directory(debugDir).list().toList();
  } catch (_) {
    return result;
  }

  for (final dirent in dirents) {
    if (dirent is! File) continue;
    final name = p.basename(dirent.path);
    if (!name.endsWith('.txt') || name == 'latest') continue;
    try {
      if (await _unlinkIfOld(dirent.path, cutoffDate)) {
        result = CleanupResult(
          messages: result.messages + 1,
          errors: result.errors,
        );
      }
    } catch (_) {
      result = CleanupResult(
        messages: result.messages,
        errors: result.errors + 1,
      );
    }
  }

  // Intentionally do NOT remove debugDir — needed for future logs.
  return result;
}