update process

This commit is contained in:
leedongmyung[desktop] 2023-11-18 19:52:12 +09:00
parent 3a7793a9ba
commit a66ce6ee5c

View file

@ -14,10 +14,11 @@ class ProcessData {
Function(ProcessData)? _endListener;
late StringBuffer stdout;
late StringBuffer stderr;
bool enableStdout = true;
bool enableStderr = true;
bool _enableStdout;
bool _enableStderr;
ProcessData(_enableStdout, _enableStderr);
// ignore: no_leading_underscores_for_local_identifiers
ProcessData(this._enableStdout, this._enableStderr);
Function(ProcessData)? get endListener {
return _endListener;
@ -53,14 +54,14 @@ class ProcessData {
stderr = StringBuffer();
process.stdout.transform(utf8.decoder).listen((event) {
stdout.writeln(event);
if (enableStdout) {
if (_enableStdout) {
print(event);
}
});
process.stderr.transform(utf8.decoder).listen((event) {
stderr.writeln(event);
if (enableStderr) {
print(event);
if (_enableStderr) {
print('======================= $event');
}
});
isRunning = true;
@ -100,11 +101,9 @@ class ProcessData {
class ProcessExecutor {
static Future<ProcessData> startExe(String exe, List<String> args,
{String? workspace, bool? enableStdout, bool? enableStderr}) async {
enableStdout ??= true;
enableStderr ??= true;
var c = Completer<ProcessData>();
var arg = '$exe ${args.join(' ')}';
var processData = ProcessData(enableStdout, enableStderr);
var processData = ProcessData(enableStdout ?? true, enableStderr ?? true);
if (Platform.isMacOS || Platform.isWindows) {
workspace = workspace ?? Directory.systemTemp.path;
print('Execute Shell: $arg');
@ -124,11 +123,8 @@ class ProcessExecutor {
static Future<ProcessData> start(StringBuffer shell,
{String? workspace, bool? enableStdout, bool? enableStderr}) async {
var c = Completer<ProcessData>();
enableStdout ??= true;
enableStderr ??= true;
try {
var processData = ProcessData(enableStdout, enableStderr);
var processData = ProcessData(enableStdout ?? true, enableStderr ?? true);
if (Platform.isMacOS || Platform.isLinux) {
workspace = workspace ?? Directory.systemTemp.path;
var file = File('$workspace/$tempFileName');