make method

  1. @override
Future<MakeResult> make(
  1. Directory appDirectory, {
  2. required Directory outputDirectory,
  3. Map<String, dynamic>? makeArguments,
  4. void onProcessStdOut(
    1. List<int> data
    )?,
  5. void onProcessStdErr(
    1. List<int> data
    )?,
})

Implementation

@override
Future<MakeResult> make(
  Directory appDirectory, {
  required Directory outputDirectory,
  Map<String, dynamic>? makeArguments,
  void Function(List<int> data)? onProcessStdOut,
  void Function(List<int> data)? onProcessStdErr,
}) async {
  MakeConfig makeConfig = await loadMakeConfig(
    outputDirectory,
    makeArguments,
  );

  if (platform == 'windows') {
    final zipFileEncoder = ZipFileEncoder();
    zipFileEncoder.zipDirectory(
      appDirectory,
      filename: makeConfig.outputFile.path,
    );
  } else {
    String filter = platform == 'macos' ? '*.app' : '*';
    Process.runSync('7z', [
      'a',
      makeConfig.outputFile.path,
      './${appDirectory.path}/$filter',
    ]);
  }
  return MakeResult(makeConfig);
}