12345678910111213141516171819202122232425262728293031 |
- 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<ExeResult<Timeslot[]>> 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);
- }
- }
- }
|