ready for more pkg manager

This commit is contained in:
lollipopkit
2023-01-26 16:11:34 +08:00
parent 0522cfef1c
commit 96034f9487
12 changed files with 106 additions and 91 deletions

View File

@@ -1,8 +1,8 @@
import 'package:toolbox/data/model/distribution.dart';
import 'package:toolbox/data/model/server/dist.dart';
class UpgradePkgInfo {
final String _raw;
final Distribution _dist;
final Dist _dist;
late String package;
late String nowVersion;
@@ -11,12 +11,15 @@ class UpgradePkgInfo {
UpgradePkgInfo(this._raw, this._dist) {
switch (_dist) {
case Distribution.debian:
case Distribution.unknown:
case Dist.debian:
case Dist.ubuntu:
_parseApt();
break;
case Distribution.rehl:
case Dist.centos:
_parseYum();
break;
default:
throw Exception('Unsupported dist: $_dist');
}
}

View File

@@ -1,23 +0,0 @@
enum Distribution {
unknown,
debian,
rehl,
}
const debianDistList = [
'debian',
'ubuntu',
'linuxmint',
'elementary',
'raspbian',
'armbian'
];
const rehlDistList = [
'redhat',
'fedora',
'centos',
'scientificlinux',
'rhel',
'oraclelinux'
];

View File

@@ -0,0 +1,30 @@
enum Dist {
debian,
ubuntu,
centos,
fedora,
opensuse,
kali,
wrt,
armbian,
arch,
freebsd,
/// Rocky Linux
rocky;
String? get iconPath {
return 'assets/linux/$name.png';
}
}
extension StringX on String {
Dist? get dist {
final lower = toLowerCase();
for (final dist in Dist.values) {
if (lower.contains(dist.name)) {
return dist;
}
}
return null;
}
}