mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-18 07:44:26 +01:00
fix: container parsing (#948)
This commit is contained in:
@@ -40,22 +40,15 @@ class ContainerNotifier extends _$ContainerNotifier {
|
||||
ContainerState build(SSHClient? client, String userName, String hostId, BuildContext context) {
|
||||
final type = Stores.container.getType(hostId);
|
||||
final initialState = ContainerState(type: type);
|
||||
|
||||
|
||||
// Async initialization
|
||||
Future.microtask(() => refresh());
|
||||
|
||||
|
||||
return initialState;
|
||||
}
|
||||
|
||||
Future<void> setType(ContainerType type) async {
|
||||
state = state.copyWith(
|
||||
type: type,
|
||||
error: null,
|
||||
runLog: null,
|
||||
items: null,
|
||||
images: null,
|
||||
version: null,
|
||||
);
|
||||
state = state.copyWith(type: type, error: null, runLog: null, items: null, images: null, version: null);
|
||||
Stores.container.setType(type, hostId);
|
||||
sudoCompleter = Completer<bool>();
|
||||
await refresh();
|
||||
@@ -180,9 +173,13 @@ class ContainerNotifier extends _$ContainerNotifier {
|
||||
try {
|
||||
final statsLines = statsRaw.split('\n');
|
||||
statsLines.removeWhere((element) => element.isEmpty);
|
||||
for (var item in state.items!) {
|
||||
final items = state.items;
|
||||
if (items == null) return;
|
||||
|
||||
for (var item in items) {
|
||||
final id = item.id;
|
||||
if (id == null) continue;
|
||||
if (id.length < 5) continue;
|
||||
final statsLine = statsLines.firstWhereOrNull(
|
||||
/// Use 5 characters to match the container id, possibility of mismatch
|
||||
/// is very low.
|
||||
@@ -267,7 +264,6 @@ class ContainerNotifier extends _$ContainerNotifier {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const _jsonFmt = '--format "{{json .}}"';
|
||||
|
||||
enum ContainerCmdType {
|
||||
|
||||
Reference in New Issue
Block a user