getAllLockInfo function
Get information about all version locks for diagnostics.
Implementation
List<LockInfo> getAllLockInfo(String locksDir) {
final lockInfos = <LockInfo>[];
try {
final dir = Directory(locksDir);
if (!dir.existsSync()) return lockInfos;
final lockFiles = dir.listSync().whereType<File>().where(
(f) => f.path.endsWith('.lock'),
);
for (final lockFile in lockFiles) {
final content = readLockContent(lockFile.path);
if (content != null) {
lockInfos.add(
LockInfo(
version: content.version,
pid: content.pid,
isProcessRunning: isProcessRunning(content.pid),
execPath: content.execPath,
acquiredAt: DateTime.fromMillisecondsSinceEpoch(content.acquiredAt),
lockFilePath: lockFile.path,
),
);
}
}
} catch (_) {}
return lockInfos;
}