list method Null safety

Future<Instances> list()

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'], []);
  }
}