public IList<ConfigParameterData> ParseQueryConfigResults(QueryConfigParameters parameters, GitOutput output) { Assert.IsNotNull(parameters); Assert.IsNotNull(output); if(output.ExitCode != 0 && parameters.ConfigFile != ConfigFile.Other) { return new ConfigParameterData[0]; } HandleConfigResults(output); var res = new List<ConfigParameterData>(); var parser = new GitParser(output.Output); while(!parser.IsAtEndOfString) { var name = parser.ReadStringUpTo(parser.FindNewLineOrEndOfString(), 1); var value = parser.ReadStringUpTo(parser.FindNullOrEndOfString(), 1); if(parameters.ConfigFile != ConfigFile.Other) { res.Add(new ConfigParameterData(name, value, parameters.ConfigFile)); } else { res.Add(new ConfigParameterData(name, value, parameters.FileName)); } } return res; }
public IList<string> ParseFilesToClean(GitOutput output) { Assert.IsNotNull(output); output.ThrowOnBadReturnCode(); var files = output.Output; var res = new List<string>(); var parser = new GitParser(files); while(!parser.IsAtEndOfString) { if(parser.CheckValue("Would remove ")) { parser.Skip(13); res.Add(parser.DecodeEscapedString(parser.FindNewLineOrEndOfString(), 1)); } else { parser.SkipLine(); } } return res; }