mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 23:34:24 +01:00
new: swap view for #10
This commit is contained in:
@@ -16,18 +16,65 @@ final memItemReg = RegExp(r'([A-Z].+:)\s+([0-9]+) kB');
|
||||
|
||||
Memory parseMem(String raw) {
|
||||
final items = raw.split('\n').map((e) => memItemReg.firstMatch(e)).toList();
|
||||
|
||||
final total = int.parse(
|
||||
items.firstWhere((e) => e?.group(1) == 'MemTotal:')?.group(2) ?? '1');
|
||||
items.firstWhere((e) => e?.group(1) == 'MemTotal:')?.group(2) ?? '1',
|
||||
);
|
||||
final free = int.parse(
|
||||
items.firstWhere((e) => e?.group(1) == 'MemFree:')?.group(2) ?? '0');
|
||||
items.firstWhere((e) => e?.group(1) == 'MemFree:')?.group(2) ?? '0',
|
||||
);
|
||||
final cached = int.parse(
|
||||
items.firstWhere((e) => e?.group(1) == 'Cached:')?.group(2) ?? '0');
|
||||
items.firstWhere((e) => e?.group(1) == 'Cached:')?.group(2) ?? '0',
|
||||
);
|
||||
final available = int.parse(
|
||||
items.firstWhere((e) => e?.group(1) == 'MemAvailable:')?.group(2) ?? '0');
|
||||
items.firstWhere((e) => e?.group(1) == 'MemAvailable:')?.group(2) ?? '0',
|
||||
);
|
||||
|
||||
return Memory(
|
||||
total: total,
|
||||
used: total - available,
|
||||
free: free,
|
||||
cache: cached,
|
||||
avail: available);
|
||||
total: total,
|
||||
used: total - available,
|
||||
free: free,
|
||||
cache: cached,
|
||||
avail: available,
|
||||
);
|
||||
}
|
||||
|
||||
class Swap {
|
||||
final int total;
|
||||
final int used;
|
||||
final int free;
|
||||
final int cached;
|
||||
|
||||
Swap({
|
||||
required this.total,
|
||||
required this.used,
|
||||
required this.free,
|
||||
required this.cached,
|
||||
});
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'Swap{total: $total, used: $used, free: $free, cached: $cached}';
|
||||
}
|
||||
}
|
||||
|
||||
Swap parseSwap(String raw) {
|
||||
final items = raw.split('\n').map((e) => memItemReg.firstMatch(e)).toList();
|
||||
|
||||
final total = int.parse(
|
||||
items.firstWhere((e) => e?.group(1) == 'SwapTotal:')?.group(2) ?? '1',
|
||||
);
|
||||
final free = int.parse(
|
||||
items.firstWhere((e) => e?.group(1) == 'SwapFree:')?.group(2) ?? '0',
|
||||
);
|
||||
final cached = int.parse(
|
||||
items.firstWhere((e) => e?.group(1) == 'SwapCached:')?.group(2) ?? '0',
|
||||
);
|
||||
|
||||
return Swap(
|
||||
total: total,
|
||||
used: total - free,
|
||||
free: free,
|
||||
cached: cached,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ class ServerStatus {
|
||||
|
||||
CpuStatus cpu;
|
||||
Memory mem;
|
||||
Swap swap;
|
||||
String sysVer;
|
||||
String uptime;
|
||||
List<DiskInfo> disk;
|
||||
@@ -39,7 +40,15 @@ class ServerStatus {
|
||||
NetSpeed netSpeed;
|
||||
String? failedInfo;
|
||||
|
||||
ServerStatus(this.cpu, this.mem, this.sysVer, this.uptime, this.disk,
|
||||
this.tcp, this.netSpeed,
|
||||
{this.failedInfo});
|
||||
ServerStatus({
|
||||
required this.cpu,
|
||||
required this.mem,
|
||||
required this.sysVer,
|
||||
required this.uptime,
|
||||
required this.disk,
|
||||
required this.tcp,
|
||||
required this.netSpeed,
|
||||
required this.swap,
|
||||
this.failedInfo,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -241,7 +241,9 @@ class ServerProvider extends BusyProvider {
|
||||
}
|
||||
|
||||
Future<void> _getMem(String id, String raw) async {
|
||||
getServer(id).status.mem = await compute(parseMem, raw);
|
||||
final s = getServer(id);
|
||||
s.status.mem = await compute(parseMem, raw);
|
||||
s.status.swap = await compute(parseSwap, raw);
|
||||
}
|
||||
|
||||
Future<String?> runSnippet(String id, Snippet snippet) async {
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
class BuildData {
|
||||
static const String name = "ServerBox";
|
||||
static const int build = 217;
|
||||
static const int build = 218;
|
||||
static const String engine =
|
||||
"Flutter 3.7.2 • channel stable • https://github.com/flutter/flutter.git\nFramework • revision 32fb2f948e (5 days ago) • 2023-02-08 07:30:10 -0800\nEngine • revision f40b73f8a4\nTools • Dart 2.19.2 • DevTools 2.20.1\n";
|
||||
static const String buildAt = "2023-02-13 14:53:15.900258";
|
||||
static const int modifications = 2;
|
||||
"Flutter 3.7.3 • channel stable • https://github.com/flutter/flutter.git\nFramework • revision 9944297138 (5 days ago) • 2023-02-08 15:46:04 -0800\nEngine • revision 248290d6d5\nTools • Dart 2.19.2 • DevTools 2.20.1\n";
|
||||
static const String buildAt = "2023-02-14 18:46:55.180156";
|
||||
static const int modifications = 5;
|
||||
}
|
||||
|
||||
@@ -37,12 +37,19 @@ get initNetSpeed => NetSpeed(
|
||||
[_initNetSpeedPart],
|
||||
[_initNetSpeedPart],
|
||||
);
|
||||
get initStatus => ServerStatus(
|
||||
initCpuStatus,
|
||||
_initMemory,
|
||||
'Loading...',
|
||||
'',
|
||||
[DiskInfo('/', '/', 0, '0', '0', '0')],
|
||||
TcpStatus(0, 0, 0, 0),
|
||||
initNetSpeed,
|
||||
get _initSwap => Swap(
|
||||
total: 1,
|
||||
used: 0,
|
||||
free: 1,
|
||||
cached: 0,
|
||||
);
|
||||
get initStatus => ServerStatus(
|
||||
cpu: initCpuStatus,
|
||||
mem: _initMemory,
|
||||
sysVer: 'Loading...',
|
||||
uptime: '',
|
||||
disk: [DiskInfo('/', '/', 0, '0', '0', '0')],
|
||||
tcp: TcpStatus(0, 0, 0, 0),
|
||||
netSpeed: initNetSpeed,
|
||||
swap: _initSwap,
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user