private static EverestModuleMetadata[] loadDir(string dir) { try { string metaPath = Path.Combine(dir, "metadata.yaml"); if (File.Exists(metaPath)) { using (StreamReader reader = new StreamReader(metaPath)) { EverestModuleMetadata meta = YamlHelper.Deserializer.Deserialize <EverestModuleMetadata>(reader); meta.PathDirectory = dir; meta.PostParse(); return(new EverestModuleMetadata[] { meta }); } } metaPath = Path.Combine(dir, "multimetadata.yaml"); if (!File.Exists(metaPath)) { metaPath = Path.Combine(dir, "everest.yaml"); } if (!File.Exists(metaPath)) { metaPath = Path.Combine(dir, "everest.yml"); } if (File.Exists(metaPath)) { using (StreamReader reader = new StreamReader(metaPath)) { if (!reader.EndOfStream) { EverestModuleMetadata[] multimetas = YamlHelper.Deserializer.Deserialize <EverestModuleMetadata[]>(reader); foreach (EverestModuleMetadata multimeta in multimetas) { multimeta.PathDirectory = dir; multimeta.PostParse(); } return(multimetas); } } } } catch (Exception e) { Logger.Log(LogLevel.Warn, "loader", $"Failed loading everest.yaml in directory {dir}: {e}"); } return(null); }
private static EverestModuleMetadata[] loadZip(string archive) { try { using (ZipFile zip = new ZipFile(archive)) { foreach (ZipEntry entry in zip.Entries) { if (entry.FileName == "metadata.yaml") { using (MemoryStream stream = entry.ExtractStream()) using (StreamReader reader = new StreamReader(stream)) { EverestModuleMetadata meta = YamlHelper.Deserializer.Deserialize <EverestModuleMetadata>(reader); meta.PathArchive = archive; meta.PostParse(); return(new EverestModuleMetadata[] { meta }); } } if (entry.FileName == "multimetadata.yaml" || entry.FileName == "everest.yaml" || entry.FileName == "everest.yml") { using (MemoryStream stream = entry.ExtractStream()) using (StreamReader reader = new StreamReader(stream)) { if (!reader.EndOfStream) { EverestModuleMetadata[] multimetas = YamlHelper.Deserializer.Deserialize <EverestModuleMetadata[]>(reader); foreach (EverestModuleMetadata multimeta in multimetas) { multimeta.PathArchive = archive; multimeta.PostParse(); } return(multimetas); } } } } } } catch (Exception e) { Logger.Log(LogLevel.Warn, "loader", $"Failed loading everest.yaml in archive {archive}: {e}"); } return(null); }