using System.Text.RegularExpressions; namespace SourceGit.Commands { public partial class QueryFileSize : Command { [GeneratedRegex(@"^\d+\s+\w+\s+[0-9a-f]+\s+(\d+)\s+.*$")] private static partial Regex REG_FORMAT(); public QueryFileSize(string repo, string file, string revision) { WorkingDirectory = repo; Context = repo; Args = $"ls-tree {revision} -l -- {file}"; } public long Result() { if (_result != 0) return _result; var rs = ReadToEnd(); if (rs.IsSuccess) { var match = REG_FORMAT().Match(rs.StdOut); if (match.Success) { return long.Parse(match.Groups[1].Value); } } return 0; } private readonly long _result = 0; } }