diff --git a/lib/src/pages/manager.dart b/lib/src/pages/manager.dart index e9818f2..f721775 100644 --- a/lib/src/pages/manager.dart +++ b/lib/src/pages/manager.dart @@ -52,7 +52,7 @@ class _ManagerState extends State with PreferencesMixin { List lines = File(name + '/' + name + '.ports').readAsLinesSync(); for (var line in lines) { List parts = line.split(','); - switch(parts[0]) { + switch (parts[0]) { case 'ssh': info.sshPort = parts[1]; break; @@ -64,12 +64,23 @@ class _ManagerState extends State with PreferencesMixin { return info; } + bool _isValidConf(conf) { + List lines = File(conf).readAsLinesSync(); + for (var line in lines) { + List parts = line.split('='); + if (parts[0] == 'guest_os') { + return true; + } + } + return false; + } + void _getVms(context) async { List currentVms = []; Map activeVms = {}; await for (var entity in Directory.current.list(recursive: false, followLinks: true)) { - if (entity.path.endsWith('.conf')) { + if ((entity.path.endsWith('.conf')) && (_isValidConf(entity.path))) { String name = path.basenameWithoutExtension(entity.path); currentVms.add(name); File pidFile = File(name + '/' + name + '.pid');