private void GetIgnoreInfo() { if (File.Exists(IgnorePath)) { IgnoreInfo = P.ProcessIgnoreFile(IgnorePath); } else { Console.WriteLine("{0} is not a valid .gitignore file path.", IgnorePath); } }
public IgnoreInfo ProcessIgnoreFile(string path) { IgnoreInfo ii = new IgnoreInfo(); string[] allLines = File.ReadAllLines(path); Regex reg = new Regex(@"\.git"); ii.DirectoriesToIgnore.Add(reg); foreach (string line in allLines) { if (line == "" || line[0] == '#') { continue; } else if (line[line.Length - 1] == '/') { string l = line.Replace("/", ""); l = l.Replace(".", "\\."); l = l.Replace("*", ".*"); Regex re = new Regex(l); ii.DirectoriesToIgnore.Add(re); } else if (!line.Contains('/')) { string l = line; l = l.Replace(".", "\\."); l = l.Replace("*", ".*"); Regex re = new Regex(l); ii.FilesToIgnore.Add(re); } else { string l = line; l = l.Replace(".", "\\."); l = l.Replace("*", ".*"); Regex re = new Regex(l); ii.ToIgnore.Add(re); } } return(ii); }