namespace Rainbow.Services;
/// <summary>Shell 命令执行器接å£ã€‚å„å¹³å°å®žçŽ°å‘½ä»¤æ‰§è¡Œ</summary>
public interface IShellExecutor
{
/// <summary>命令执行超时(毫秒)</summary>
Int32 TimeoutMs { get; set; }
/// <summary>是å¦å¯ç”¨å®¡è®¡</summary>
Boolean EnableAudit { get; set; }
/// <summary>åŒæ¥æ‰§è¡Œå‘½ä»¤</summary>
/// <param name="command">命令</param>
/// <param name="arguments">傿•°</param>
/// <param name="needSudo">是å¦éœ€è¦ sudo</param>
/// <returns>执行结果</returns>
ShellResult Execute(String command, String arguments, Boolean needSudo = false);
/// <summary>åŒæ¥æ‰§è¡Œå‘½ä»¤ï¼ˆæ•°ç»„傿•°ï¼‰</summary>
/// <param name="command">命令</param>
/// <param name="arguments">傿•°æ•°ç»„</param>
/// <param name="needSudo">是å¦éœ€è¦ sudo</param>
/// <returns>执行结果</returns>
ShellResult Execute(String command, String[] arguments, Boolean needSudo = false);
/// <summary>å¼‚æ¥æ‰§è¡Œå‘½ä»¤</summary>
/// <param name="command">命令</param>
/// <param name="arguments">傿•°</param>
/// <param name="needSudo">是å¦éœ€è¦ sudo</param>
/// <param name="cancellationToken">å–æ¶ˆä»¤ç‰Œ</param>
/// <returns>执行结果</returns>
Task<ShellResult> ExecuteAsync(String command, String arguments, Boolean needSudo = false, CancellationToken cancellationToken = default);
/// <summary>å¼‚æ¥æ‰§è¡Œå‘½ä»¤ï¼ˆæ•°ç»„傿•°ï¼‰</summary>
/// <param name="command">命令</param>
/// <param name="arguments">傿•°æ•°ç»„</param>
/// <param name="needSudo">是å¦éœ€è¦ sudo</param>
/// <param name="cancellationToken">å–æ¶ˆä»¤ç‰Œ</param>
/// <returns>执行结果</returns>
Task<ShellResult> ExecuteAsync(String command, String[] arguments, Boolean needSudo = false, CancellationToken cancellationToken = default);
}
|