From 3a7793a9baa14929178a1c11da3bb15bfe8ee954 Mon Sep 17 00:00:00 2001 From: "leedongmyung[desktop]" Date: Sat, 18 Nov 2023 19:05:32 +0900 Subject: [PATCH] update process --- lib/platform/process.dart | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/lib/platform/process.dart b/lib/platform/process.dart index dcc9944..05d70c3 100644 --- a/lib/platform/process.dart +++ b/lib/platform/process.dart @@ -14,6 +14,10 @@ class ProcessData { Function(ProcessData)? _endListener; late StringBuffer stdout; late StringBuffer stderr; + bool enableStdout = true; + bool enableStderr = true; + + ProcessData(_enableStdout, _enableStderr); Function(ProcessData)? get endListener { return _endListener; @@ -49,11 +53,15 @@ class ProcessData { stderr = StringBuffer(); process.stdout.transform(utf8.decoder).listen((event) { stdout.writeln(event); - print(event); + if (enableStdout) { + print(event); + } }); process.stderr.transform(utf8.decoder).listen((event) { stderr.writeln(event); - print(event); + if (enableStderr) { + print(event); + } }); isRunning = true; checkExit(); @@ -91,10 +99,12 @@ class ProcessData { class ProcessExecutor { static Future startExe(String exe, List args, - {String? workspace}) async { + {String? workspace, bool? enableStdout, bool? enableStderr}) async { + enableStdout ??= true; + enableStderr ??= true; var c = Completer(); var arg = '$exe ${args.join(' ')}'; - var processData = ProcessData(); + var processData = ProcessData(enableStdout, enableStderr); if (Platform.isMacOS || Platform.isWindows) { workspace = workspace ?? Directory.systemTemp.path; print('Execute Shell: $arg'); @@ -112,11 +122,13 @@ class ProcessExecutor { } static Future start(StringBuffer shell, - {String? workspace}) async { + {String? workspace, bool? enableStdout, bool? enableStderr}) async { var c = Completer(); + enableStdout ??= true; + enableStderr ??= true; try { - var processData = ProcessData(); + var processData = ProcessData(enableStdout, enableStderr); if (Platform.isMacOS || Platform.isLinux) { workspace = workspace ?? Directory.systemTemp.path; var file = File('$workspace/$tempFileName');