update process

This commit is contained in:
leedongmyung[desktop] 2023-11-18 19:05:32 +09:00
parent 5ffa7c3706
commit 3a7793a9ba

View file

@ -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<ProcessData> startExe(String exe, List<String> args,
{String? workspace}) async {
{String? workspace, bool? enableStdout, bool? enableStderr}) async {
enableStdout ??= true;
enableStderr ??= true;
var c = Completer<ProcessData>();
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<ProcessData> start(StringBuffer shell,
{String? workspace}) async {
{String? workspace, bool? enableStdout, bool? enableStderr}) async {
var c = Completer<ProcessData>();
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');