copy method Null safety

Future<String> copy(
  1. String distribution,
  2. String newName,
  3. {String location = defaultPath}
)

Copy a WSL distro by name @param distribution: String @param newName: String @param location: String (optional) @return Future

Implementation

Future<String> copy(String distribution, String newName,
    {String location = defaultPath}) async {
  if (location == '') {
    location = defaultPath;
  }
  final String last = location[location.length - 1];
  if (last != '/' && last != '\\') {
    location = '$location\\';
  }

  // Try to create directory
  mkRootDir(path: location);

  // Copy
  String exportRes = await export(distribution, '$location$distribution.tar');
  String importRes =
      await import(newName, location + newName, '$location$distribution.tar');

  // Cleanup, delete file
  File file = File('$location$distribution.tar');
  if (file.existsSync()) {
    file.deleteSync();
  }
  return '$exportRes $importRes';
}