public static bool IsValid(DirectoryInfo pathToDirectory, bool throwsExceptions) { string version = pathToDirectory.Name; if (!File.Exists(Path.Combine(pathToDirectory.ToString(), version + ".json"))) { if (throwsExceptions) { throw new VersionCorruptedOrNotExists( $"Directory '{version}' doesn't contain JSON file. Path: {pathToDirectory}") { Version = version }; } return(false); } VersionManifest ver = (VersionManifest)JsonConvert.DeserializeObject(File.ReadAllText(Path.Combine(pathToDirectory.ToString(), version + ".json")), typeof(VersionManifest)); if (ver != null) { return(true); } if (throwsExceptions) { throw new VersionCorruptedOrNotExists( $"Directory '{version}' contains corrupted JSON file. Path: {pathToDirectory}") { Version = version }; } return(false); }
public string GetAssetsIndex() { if (!string.IsNullOrEmpty(AssetsIndex)) { return(AssetsIndex); } VersionManifest manifest = InheritableVersionManifest; while (true) { if (manifest.InheritsFrom == null) { if (manifest.AssetsIndex != null) { return(manifest.AssetsIndex); } break; } manifest = manifest.InheritableVersionManifest; } throw new VersionCorrupted("Can't get assets index.") { Version = VersionId }; }
/// <summary> /// Parses build's JSON file. /// </summary> /// <param name="pathToDirectory">Path to build's directory.</param> /// <param name="parseInheritableVersion">Parses inheritable builds.</param> public static VersionManifest ParseVersion(DirectoryInfo pathToDirectory, bool parseInheritableVersion) { IsValid(pathToDirectory, true); string version = pathToDirectory.Name; VersionManifest ver = (VersionManifest) JsonConvert.DeserializeObject( File.ReadAllText(Path.Combine(pathToDirectory.ToString(), version + ".json")), typeof(VersionManifest)); if (ver.InheritsFrom == null || !parseInheritableVersion) { return(ver); } ver.InheritableVersionManifest = ParseVersion(new DirectoryInfo(Path.Combine(pathToDirectory.Parent.FullName, ver.InheritsFrom))); ver.Libs.AddRange(ver.InheritableVersionManifest.Libs); return(ver); }
public string GetJavaVersion() { VersionManifest manifest = InheritableVersionManifest; while (true) { if (manifest?.InheritsFrom == null) { if (JavaVersionInfo != null) { return(JavaVersionInfo.majorVersion); } if (manifest?.JavaVersionInfo != null) { return(manifest.JavaVersionInfo.majorVersion); } break; } manifest = manifest.InheritableVersionManifest; } return(null); }
public string GetAssetsIndex() { if (!string.IsNullOrEmpty(AssetsIndex)) { return(AssetsIndex); } VersionManifest manifest = InheritableVersionManifest; while (true) { if (manifest?.InheritsFrom == null) { if (manifest?.AssetsIndex != null) { return(manifest.AssetsIndex); } break; } manifest = manifest.InheritableVersionManifest; } return("legacy"); }