main function

void main(
  1. List<String> argv
)

Implementation

void main(List<String> argv) {
  final ArgParser parser = ArgParser();
  parser.addOption(_kFileOption,
      help: 'Specifies the file to edit samples in.');
  parser.addOption(_kFlutterRootOption,
      help: 'Specifies the location of the Flutter root directory.');
  parser.addOption(_kDartUiRootOption,
      help: 'Specifies the location of the dart:ui source directory.');
  final ArgResults args = parser.parse(argv);

  const FileSystem filesystem = LocalFileSystem();

  Directory? flutterRoot;
  if (args.wasParsed(_kFlutterRootOption)) {
    flutterRoot = filesystem.directory(args[_kFlutterRootOption]! as String);
  }
  if (flutterRoot != null && !flutterRoot.existsSync()) {
    io.stderr.writeln('Supplied --$_kFlutterRootOption directory '
        '${args[_kFlutterRootOption]!} does not exist.');
    io.exit(-1);
  }

  Directory? dartUiRoot;
  if (args.wasParsed(_kDartUiRootOption)) {
    dartUiRoot = filesystem.directory(args[_kDartUiRootOption]! as String);
  }
  if (dartUiRoot != null && !dartUiRoot.existsSync()) {
    io.stderr.writeln('Supplied --$_kDartUiRootOption directory '
        '${args[_kDartUiRootOption]!} does not exist.');
    io.exit(-1);
  }

  File? workingFile;
  if (args.wasParsed(_kFileOption)) {
    workingFile = filesystem.file(args[_kFileOption]);
  }

  Model.resetInstance(
    workingFile: workingFile,
    flutterRoot: flutterRoot,
    filesystem: filesystem,
    dartUiRoot: dartUiRoot,
  );

  runApp(const MainApp());
}