fix: docker ps parse if id/name is too long

This commit is contained in:
lollipopkit
2024-06-08 20:57:56 +08:00
parent 8121eef839
commit 9f34021c90
8 changed files with 69 additions and 34 deletions

View File

@@ -143,7 +143,6 @@ final class DockerPs implements ContainerPs {
@override
bool get running {
if (state?.contains('Exited') == true) return false;
if (state?.contains('Up') == true) return true;
return true;
}
@@ -162,9 +161,9 @@ final class DockerPs implements ContainerPs {
final parts = raw.split(Miscs.multiBlankreg);
return DockerPs(
id: parts[0],
names: parts[1],
image: parts[2],
state: parts[3].trim(),
state: parts[1],
names: parts[2],
image: parts[3].trim(),
);
}
}

View File

@@ -276,9 +276,13 @@ enum ContainerCmdType {
return switch (this) {
ContainerCmdType.version => '$prefix version $_jsonFmt',
ContainerCmdType.ps => switch (type) {
/// TODO: Rollback to json format when permformance recovers.
/// Use [_jsonFmt] in Docker will cause the operation to slow down.
ContainerType.docker => '$prefix ps -a --format "table {{printf \\"'
'%-15.15s ${"%-30.30s " * 3}\\" .ID .Names .Image .Status}}"',
'%-15.15s '
'%-30.30s '
'${"%-50.50s " * 2}\\"'
' .ID .Status .Names .Image}}"',
ContainerType.podman => '$prefix ps -a $_jsonFmt',
},
ContainerCmdType.stats =>

View File

@@ -2,9 +2,9 @@
class BuildData {
static const String name = "ServerBox";
static const int build = 941;
static const int build = 943;
static const String engine = "3.22.1";
static const String buildAt = "2024-06-07 23:57:38";
static const int modifications = 4;
static const String buildAt = "2024-06-08 19:28:01";
static const int modifications = 7;
static const int script = 48;
}

View File

@@ -3,4 +3,4 @@ import 'package:fl_lib/fl_lib.dart';
abstract final class RNodes {
static final app = RNode();
static final dark = false.vn;
}
}