list method Null safety
Returns list of WSL distros
@return Future
Implementation
Future<Instances> list() async {
ProcessResult results =
await Process.run('wsl', ['--list', '--quiet'], stdoutEncoding: null);
String output = utf8Convert(results.stdout);
List<String> list = [];
bool wslInstalled = true;
// Check if wsl is installed
if (output.contains('wsl.exe') || output.contains('ProcessException')) {
wslInstalled = false;
}
if (wslInstalled) {
output.split('\n').forEach((line) {
// Filter out docker data
if (line != '' &&
!line.startsWith('docker-desktop-data') &&
!line.startsWith('docker-desktop')) {
list.add(line);
}
});
List<String> running = await listRunning();
return Instances(list, running);
} else {
return Instances(['wslNotInstalled'], []);
}
}