mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-18 07:44:26 +01:00
new: podman
This commit is contained in:
@@ -20,7 +20,7 @@ class Backup {
|
||||
final List<ServerPrivateInfo> spis;
|
||||
final List<Snippet> snippets;
|
||||
final List<PrivateKeyInfo> keys;
|
||||
final Map<String, dynamic> dockerHosts;
|
||||
final Map<String, dynamic> container;
|
||||
final Map<String, dynamic> settings;
|
||||
final Map<String, dynamic> history;
|
||||
final int? lastModTime;
|
||||
@@ -31,7 +31,7 @@ class Backup {
|
||||
required this.spis,
|
||||
required this.snippets,
|
||||
required this.keys,
|
||||
required this.dockerHosts,
|
||||
required this.container,
|
||||
required this.settings,
|
||||
required this.history,
|
||||
this.lastModTime,
|
||||
@@ -48,7 +48,7 @@ class Backup {
|
||||
keys = (json['keys'] as List)
|
||||
.map((e) => PrivateKeyInfo.fromJson(e))
|
||||
.toList(),
|
||||
dockerHosts = json['dockerHosts'] ?? {},
|
||||
container = json['container'] ?? {},
|
||||
settings = json['settings'] ?? {},
|
||||
lastModTime = json['lastModTime'],
|
||||
history = json['history'] ?? {};
|
||||
@@ -59,7 +59,7 @@ class Backup {
|
||||
'spis': spis,
|
||||
'snippets': snippets,
|
||||
'keys': keys,
|
||||
'dockerHosts': dockerHosts,
|
||||
'container': container,
|
||||
'settings': settings,
|
||||
'lastModTime': lastModTime,
|
||||
'history': history,
|
||||
@@ -71,7 +71,7 @@ class Backup {
|
||||
spis = Stores.server.fetch(),
|
||||
snippets = Stores.snippet.fetch(),
|
||||
keys = Stores.key.fetch(),
|
||||
dockerHosts = Stores.docker.box.toJson(),
|
||||
container = Stores.docker.box.toJson(),
|
||||
settings = Stores.setting.box.toJson(),
|
||||
lastModTime = Stores.lastModTime,
|
||||
history = Stores.history.box.toJson();
|
||||
@@ -110,8 +110,8 @@ class Backup {
|
||||
for (final s in history.keys) {
|
||||
Stores.history.box.put(s, history[s]);
|
||||
}
|
||||
for (final k in dockerHosts.keys) {
|
||||
final val = dockerHosts[k];
|
||||
for (final k in container.keys) {
|
||||
final val = container[k];
|
||||
if (val != null && val is String && val.isNotEmpty) {
|
||||
Stores.docker.put(k, val);
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ class SSHErr extends Err<SSHErrType> {
|
||||
}
|
||||
}
|
||||
|
||||
enum DockerErrType {
|
||||
enum ContainerErrType {
|
||||
unknown,
|
||||
noClient,
|
||||
notInstalled,
|
||||
@@ -45,12 +45,12 @@ enum DockerErrType {
|
||||
parseStats,
|
||||
}
|
||||
|
||||
class DockerErr extends Err<DockerErrType> {
|
||||
DockerErr({required super.type, super.message}) : super(from: ErrFrom.docker);
|
||||
class ContainerErr extends Err<ContainerErrType> {
|
||||
ContainerErr({required super.type, super.message}) : super(from: ErrFrom.docker);
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'DockerErr<$type>: $message';
|
||||
return 'ContainerErr<$type>: $message';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:toolbox/core/extension/context/locale.dart';
|
||||
|
||||
enum ServerTabMenuType {
|
||||
enum ServerTabMenu {
|
||||
terminal,
|
||||
sftp,
|
||||
docker,
|
||||
container,
|
||||
process,
|
||||
pkg,
|
||||
//snippet,
|
||||
@@ -12,40 +12,40 @@ enum ServerTabMenuType {
|
||||
|
||||
IconData get icon {
|
||||
switch (this) {
|
||||
case ServerTabMenuType.sftp:
|
||||
case ServerTabMenu.sftp:
|
||||
return Icons.insert_drive_file;
|
||||
//case ServerTabMenuType.snippet:
|
||||
//return Icons.code;
|
||||
case ServerTabMenuType.pkg:
|
||||
case ServerTabMenu.pkg:
|
||||
return Icons.system_security_update;
|
||||
case ServerTabMenuType.docker:
|
||||
case ServerTabMenu.container:
|
||||
return Icons.view_agenda;
|
||||
case ServerTabMenuType.process:
|
||||
case ServerTabMenu.process:
|
||||
return Icons.list_alt_outlined;
|
||||
case ServerTabMenuType.terminal:
|
||||
case ServerTabMenu.terminal:
|
||||
return Icons.terminal;
|
||||
}
|
||||
}
|
||||
|
||||
String get toStr {
|
||||
switch (this) {
|
||||
case ServerTabMenuType.sftp:
|
||||
case ServerTabMenu.sftp:
|
||||
return 'SFTP';
|
||||
//case ServerTabMenuType.snippet:
|
||||
//return l10n.snippet;
|
||||
case ServerTabMenuType.pkg:
|
||||
case ServerTabMenu.pkg:
|
||||
return l10n.pkg;
|
||||
case ServerTabMenuType.docker:
|
||||
return 'Docker';
|
||||
case ServerTabMenuType.process:
|
||||
case ServerTabMenu.container:
|
||||
return l10n.container;
|
||||
case ServerTabMenu.process:
|
||||
return l10n.process;
|
||||
case ServerTabMenuType.terminal:
|
||||
case ServerTabMenu.terminal:
|
||||
return l10n.terminal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
enum DockerMenuType {
|
||||
enum ContainerMenu {
|
||||
start,
|
||||
stop,
|
||||
restart,
|
||||
@@ -55,7 +55,7 @@ enum DockerMenuType {
|
||||
//stats,
|
||||
;
|
||||
|
||||
static List<DockerMenuType> items(bool running) {
|
||||
static List<ContainerMenu> items(bool running) {
|
||||
if (running) {
|
||||
return [
|
||||
stop,
|
||||
@@ -72,17 +72,17 @@ enum DockerMenuType {
|
||||
|
||||
IconData get icon {
|
||||
switch (this) {
|
||||
case DockerMenuType.start:
|
||||
case ContainerMenu.start:
|
||||
return Icons.play_arrow;
|
||||
case DockerMenuType.stop:
|
||||
case ContainerMenu.stop:
|
||||
return Icons.stop;
|
||||
case DockerMenuType.restart:
|
||||
case ContainerMenu.restart:
|
||||
return Icons.restart_alt;
|
||||
case DockerMenuType.rm:
|
||||
case ContainerMenu.rm:
|
||||
return Icons.delete;
|
||||
case DockerMenuType.logs:
|
||||
case ContainerMenu.logs:
|
||||
return Icons.logo_dev;
|
||||
case DockerMenuType.terminal:
|
||||
case ContainerMenu.terminal:
|
||||
return Icons.terminal;
|
||||
// case DockerMenuType.stats:
|
||||
// return Icons.bar_chart;
|
||||
@@ -91,24 +91,24 @@ enum DockerMenuType {
|
||||
|
||||
String get toStr {
|
||||
switch (this) {
|
||||
case DockerMenuType.start:
|
||||
case ContainerMenu.start:
|
||||
return l10n.start;
|
||||
case DockerMenuType.stop:
|
||||
case ContainerMenu.stop:
|
||||
return l10n.stop;
|
||||
case DockerMenuType.restart:
|
||||
case ContainerMenu.restart:
|
||||
return l10n.restart;
|
||||
case DockerMenuType.rm:
|
||||
case ContainerMenu.rm:
|
||||
return l10n.delete;
|
||||
case DockerMenuType.logs:
|
||||
case ContainerMenu.logs:
|
||||
return l10n.log;
|
||||
case DockerMenuType.terminal:
|
||||
case ContainerMenu.terminal:
|
||||
return l10n.terminal;
|
||||
// case DockerMenuType.stats:
|
||||
// return s.stats;
|
||||
}
|
||||
}
|
||||
|
||||
PopupMenuItem<DockerMenuType> get widget => _build(this, icon, toStr);
|
||||
PopupMenuItem<ContainerMenu> get widget => _build(this, icon, toStr);
|
||||
}
|
||||
|
||||
PopupMenuItem<T> _build<T>(T t, IconData icon, String text) {
|
||||
|
||||
@@ -224,30 +224,6 @@ const _statusCmds = [
|
||||
'nvidia-smi -q -x',
|
||||
];
|
||||
|
||||
enum DockerCmdType {
|
||||
version,
|
||||
ps,
|
||||
//stats,
|
||||
images,
|
||||
;
|
||||
|
||||
String get exec {
|
||||
switch (this) {
|
||||
case DockerCmdType.version:
|
||||
return 'docker version';
|
||||
case DockerCmdType.ps:
|
||||
return 'docker ps -a';
|
||||
// case DockerCmdType.stats:
|
||||
// return 'docker stats --no-stream';
|
||||
case DockerCmdType.images:
|
||||
return 'docker image ls';
|
||||
}
|
||||
}
|
||||
|
||||
static final execAll =
|
||||
values.map((e) => e.exec).join(' && echo $seperator && ');
|
||||
}
|
||||
|
||||
enum BSDStatusCmdType {
|
||||
echo,
|
||||
time,
|
||||
|
||||
Reference in New Issue
Block a user