// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved.
#pragma once
#include "Engine/Core/Types/String.h"
#include "Engine/Core/Collections/Array.h"
#include "Engine/Core/Collections/Dictionary.h"
///
/// Settings for new process.
///
API_STRUCT(NoDefault) struct CreateProcessSettings
{
DECLARE_SCRIPTING_TYPE_MINIMAL(CreateProcessSettings);
///
/// The path to the executable file.
///
API_FIELD() String FileName;
///
/// The custom arguments for command line.
///
API_FIELD() String Arguments;
///
/// The custom folder path where start process. Empty if unused.
///
API_FIELD() String WorkingDirectory;
///
/// True if capture process output and print to the log.
///
API_FIELD() bool LogOutput = true;
///
/// True if capture process output and store it as Output text array.
///
API_FIELD() bool SaveOutput = false;
///
/// True if wait for the process execution end.
///
API_FIELD() bool WaitForEnd = true;
///
/// True if hint process to hide window. Supported only on Windows platform.
///
API_FIELD() bool HiddenWindow = true;
///
/// True if use operating system shell to start the process. Supported only on Windows platform.
///
API_FIELD() bool ShellExecute = false;
///
/// Custom environment variables to set for the process. Empty if unused. Additionally newly spawned process inherits this process vars which can be overriden here.
///
API_FIELD() Dictionary Environment;
///
/// Output process contents.
///
API_FIELD() Array Output;
};