mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 23:34:24 +01:00
opt.: refactor AppShellFunc
This commit is contained in:
@@ -6,6 +6,7 @@ import 'package:logging/logging.dart';
|
||||
import 'package:toolbox/core/extension/ssh_client.dart';
|
||||
import 'package:toolbox/core/extension/stringx.dart';
|
||||
import 'package:toolbox/core/provider_base.dart';
|
||||
import 'package:toolbox/data/model/app/shell_func.dart';
|
||||
import 'package:toolbox/data/model/docker/image.dart';
|
||||
import 'package:toolbox/data/model/docker/ps.dart';
|
||||
import 'package:toolbox/data/model/app/error.dart';
|
||||
@@ -55,7 +56,7 @@ class DockerProvider extends BusyProvider {
|
||||
|
||||
var raw = '';
|
||||
await client!.exec(
|
||||
shellFuncDocker.exec,
|
||||
AppShellFuncType.docker.exec,
|
||||
onStderr: _onPwd,
|
||||
onStdout: (data, _) => raw = '$raw$data',
|
||||
);
|
||||
@@ -75,7 +76,7 @@ class DockerProvider extends BusyProvider {
|
||||
}
|
||||
|
||||
// Parse docker version
|
||||
final verRaw = segments[0];
|
||||
final verRaw = DockerCmdType.version.find(segments);
|
||||
try {
|
||||
version = _versionReg.firstMatch(verRaw)?.group(2);
|
||||
edition = _editionReg.firstMatch(verRaw)?.group(2);
|
||||
@@ -88,7 +89,7 @@ class DockerProvider extends BusyProvider {
|
||||
}
|
||||
|
||||
// Parse docker ps
|
||||
final psRaw = segments[1];
|
||||
final psRaw = DockerCmdType.ps.find(segments);
|
||||
try {
|
||||
final lines = psRaw.split('\n');
|
||||
lines.removeWhere((element) => element.isEmpty);
|
||||
@@ -105,7 +106,7 @@ class DockerProvider extends BusyProvider {
|
||||
}
|
||||
|
||||
// Parse docker images
|
||||
final imageRaw = segments[3];
|
||||
final imageRaw = DockerCmdType.images.find(segments);
|
||||
try {
|
||||
final imageLines = imageRaw.split('\n');
|
||||
imageLines.removeWhere((element) => element.isEmpty);
|
||||
@@ -122,7 +123,7 @@ class DockerProvider extends BusyProvider {
|
||||
}
|
||||
|
||||
// Parse docker stats
|
||||
final statsRaw = segments[2];
|
||||
final statsRaw = DockerCmdType.stats.find(segments);
|
||||
try {
|
||||
final statsLines = statsRaw.split('\n');
|
||||
statsLines.removeWhere((element) => element.isEmpty);
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'dart:async';
|
||||
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:toolbox/data/model/app/shell_func.dart';
|
||||
|
||||
import '../../core/extension/order.dart';
|
||||
import '../../core/extension/uint8list.dart';
|
||||
@@ -245,9 +246,9 @@ class ServerProvider extends BusyProvider {
|
||||
|
||||
if (s.client == null) return;
|
||||
// run script to get server status
|
||||
raw = await s.client!.run(shellFuncStatus.exec).string;
|
||||
raw = await s.client!.run(AppShellFuncType.status.exec).string;
|
||||
segments = raw.split(seperator).map((e) => e.trim()).toList();
|
||||
if (raw.isEmpty || segments.length != CmdType.values.length) {
|
||||
if (raw.isEmpty || segments.length != StatusCmdType.values.length) {
|
||||
s.state = ServerState.failed;
|
||||
if (s.status.failedInfo?.isEmpty ?? true) {
|
||||
s.status.failedInfo = 'Seperate segments failed, raw:\n$raw';
|
||||
|
||||
Reference in New Issue
Block a user