using CliWrap.Buffered; using Ips.Library.Basic; using Ips.Library.Entity; using System; using System.Collections.Generic; using System.Text; using System.Threading; using System.Threading.Tasks; namespace Ips.Enc { public static class EncUtils { static readonly string CliPath = PathUtil.GetAssemblyPath("ipscli", "enc", "enc.exe"); public static async Task> Get(string fileName, EncOptions arg, int timeout = 60, CancellationToken token = default) { var cli = CliWrap.Cli.Wrap(CliPath) .WithArguments(args => { args.Add(fileName); args.Add("-f").Add(arg.Fs); args.Add("-a").Add(arg.AverageCnt); args.Add("-t").Add(timeout.ToString()); }); var res = await cli.ExecuteBufferedAsync(token.LinkTimeout(timeout)); var result = Timeslot.FromListString(res.StandardOutput); return ExeResult.Create(result, cli.Arguments, res.StartTime, res.ExitTime, res.ExitCode, res.StandardError); } } }