public virtual bool IsIgored(DirectoryInfo di) { if (IgnoredFolders == null) { return(false); } return(IgnoredFolders.IndexOf(di.Name.ToLower()) != -1); }
public bool IsIgnoredForder(string path) { return(IgnoredFolders?.Any(f => GitIgnoreReader.IsChildedPath(PathIO.Combine(Path, f), path)) ?? false); }
public static List <ModProjectData> LoadModProjects(DOS2DEModuleData Data, bool clearExisting = false) { if (clearExisting) { Data.ModProjects.Clear(); Log.Here().Important("Cleared mod project data."); } List <ModProjectData> newItems = new List <ModProjectData>(); if (Data.Settings != null && !String.IsNullOrEmpty(Data.Settings.DOS2DEDataDirectory)) { if (Directory.Exists(Data.Settings.DOS2DEDataDirectory)) { string projectsPath = Path.Combine(Data.Settings.DOS2DEDataDirectory, "Projects"); string modsPath = Path.Combine(Data.Settings.DOS2DEDataDirectory, "Mods"); if (Directory.Exists(modsPath)) { Log.Here().Activity("Loading DOS2 projects from mods directory at: {0}", modsPath); DirectoryEnumerationFilters filters = new DirectoryEnumerationFilters() { InclusionFilter = (f) => { return(!IgnoredFolders.Contains(f.FileName)); }, }; var modFolders = Directory.EnumerateDirectories(modsPath, DirectoryEnumerationOptions.Folders, filters, PathFormat.LongFullPath); if (modFolders != null) { foreach (string modFolder in modFolders) { var modFolderName = Path.GetFileName(modFolder); //Log.Here().Activity("Checking project mod folder: {0}", modFolderName); var metaFilePath = Path.Combine(modFolder, "meta.lsx"); if (File.Exists(metaFilePath)) { //Log.Here().Activity("Meta file found for project {0}. Reading file.", modFolderName); ModProjectData modProjectData = new ModProjectData(); modProjectData.LoadAllData(metaFilePath, projectsPath); //Log.Here().Activity("Finished reading meta files for mod: {0}", modProjectData.ModuleInfo.Name); if (!clearExisting) { var previous = Data.ModProjects.Items.FirstOrDefault(p => p.FolderName == modProjectData.FolderName); if (previous != null) { if (previous.DataIsNewer(modProjectData)) { previous.UpdateData(modProjectData); } } else { newItems.Add(modProjectData); } } else { newItems.Add(modProjectData); } } } } } } else { Log.Here().Error("Loading available projects failed. DOS2 data directory not found at {0}", Data.Settings.DOS2DEDataDirectory); } } return(newItems); }