cleanupOldFileHistoryBackups function
Clean up old file history backups.
Implementation
Future<CleanupResult> cleanupOldFileHistoryBackups() async {
final cutoffDate = getCutoffDate();
var result = const CleanupResult();
try {
final configDir = _getNeomageConfigHomeDir();
final fileHistoryDir = p.join(configDir, 'file-history');
List<FileSystemEntity> dirents;
try {
dirents = await Directory(fileHistoryDir).list().toList();
} catch (_) {
return result;
}
final sessionDirs = dirents.whereType<Directory>().toList();
await Future.wait(
sessionDirs.map((sessionDir) async {
try {
final stat = await FileStat.stat(sessionDir.path);
if (stat.modified.isBefore(cutoffDate)) {
await sessionDir.delete(recursive: true);
result = CleanupResult(
messages: result.messages + 1,
errors: result.errors,
);
}
} catch (_) {
result = CleanupResult(
messages: result.messages,
errors: result.errors + 1,
);
}
}),
);
await _tryRmdir(fileHistoryDir);
} catch (_) {}
return result;
}