private void InternalCheckForCompilation() { if (_isRebuilding != EditorApplication.isCompiling) { if (!_isRebuilding && EditorApplication.isCompiling) { var compilationText = (TextAsset)AssetDatabase.LoadAssetAtPath(CompilationNumberFile, typeof(TextAsset)); if (compilationText != null) { CurrentCompilation = JsonConvert.DeserializeObject <JEMBuildCompilation>(compilationText.text); } if (CurrentCompilation == null) { Debug.LogError("Unable to load compilation data to update number."); return; } CurrentCompilation.CompilationNumber++; CurrentCompilation.CompilationTime = DateTime.UtcNow; var json = JsonConvert.SerializeObject(CurrentCompilation, Formatting.Indented); File.WriteAllText(CompilationNumberFile, json); File.WriteAllText(LastContributorFile, JEMBuildEditor.ResolveCurrentContributorName()); AssetDatabase.Refresh(ImportAssetOptions.Default); AssetDatabase.SaveAssets(); RefreshLocalData(); } _isRebuilding = EditorApplication.isCompiling; } Repaint(); }
/// <summary> /// Saves data to local file /// </summary> public static void SaveLocalData() { // save version info if (CurrentVersion != null) { var json = JsonConvert.SerializeObject(CurrentVersion, Formatting.Indented); var dir = Path.GetDirectoryName(VersionFile); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } File.WriteAllText(VersionFile, json); } // save compilation info if (CurrentCompilation != null) { var json = JsonConvert.SerializeObject(CurrentCompilation, Formatting.Indented); var dir = Path.GetDirectoryName(CompilationNumberFile); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } File.WriteAllText(CompilationNumberFile, json); File.WriteAllText(LastContributorFile, JEMBuildEditor.ResolveCurrentContributorName()); } // save asset database AssetDatabase.Refresh(ImportAssetOptions.Default); AssetDatabase.SaveAssets(); // refresh local data RefreshLocalData(); }
/// <summary> /// Increase build number. /// </summary> public static void IncreaseBuildNumber() { var compilationText = (TextAsset)AssetDatabase.LoadAssetAtPath(CompilationNumberFile, typeof(TextAsset)); if (compilationText != null) { CurrentCompilation = JsonConvert.DeserializeObject <JEMBuildCompilation>(compilationText.text); } if (CurrentCompilation == null) { Debug.LogError("Unable to load compilation data to update number."); return; } CurrentCompilation.BuildNumber++; CurrentCompilation.BuildTime = DateTime.UtcNow; var json = JsonConvert.SerializeObject(CurrentCompilation, Formatting.Indented); File.WriteAllText(CompilationNumberFile, json); File.WriteAllText(LastContributorFile, JEMBuildEditor.ResolveCurrentContributorName()); AssetDatabase.Refresh(ImportAssetOptions.Default); AssetDatabase.SaveAssets(); RefreshLocalData(); }
/// <summary> /// Loads local data. /// </summary> public static void RefreshLocalData() { // load version info var versionData = (TextAsset)AssetDatabase.LoadAssetAtPath(VersionFile, typeof(TextAsset)); if (versionData == null) { // initialize new version file CurrentVersion = new JEMBuildVersion(); var dir = Path.GetDirectoryName(VersionFile); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir ?? throw new InvalidOperationException()); } File.WriteAllText(VersionFile, JsonConvert.SerializeObject(CurrentVersion, Formatting.Indented)); AssetDatabase.Refresh(ImportAssetOptions.Default); AssetDatabase.SaveAssets(); Debug.Log($"File {VersionFile} not exist. New file has been created."); } else { CurrentVersion = JsonConvert.DeserializeObject <JEMBuildVersion>(versionData.text); } if (CurrentVersion == null) { Debug.LogError("Unable to resolve current version data."); } // load compilation file var compilationText = !File.Exists(CompilationNumberFile) ? null : (TextAsset)AssetDatabase.LoadAssetAtPath(CompilationNumberFile, typeof(TextAsset)); if (compilationText == null) { // initialize new compilation number file CurrentCompilation = new JEMBuildCompilation(); var dir = Path.GetDirectoryName(CompilationNumberFile); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir ?? throw new InvalidOperationException()); } File.WriteAllText(CompilationNumberFile, JsonConvert.SerializeObject(CurrentCompilation, Formatting.Indented)); File.WriteAllText(LastContributorFile, JEMBuildEditor.ResolveCurrentContributorName()); AssetDatabase.Refresh(ImportAssetOptions.Default); AssetDatabase.SaveAssets(); Debug.Log($"File {CompilationNumberFile} not exist. New file has been created."); } else { CurrentCompilation = JsonConvert.DeserializeObject <JEMBuildCompilation>(compilationText.text); } if (CurrentCompilation == null) { Debug.LogError("Unable to resolve current compilation data."); } // apply compilation number CurrentCompilationNumber = JEMBuild.ResolveCurrentCompilationNumber(); CurrentBuildNumber = JEMBuild.ResolveCurrentBuildNumber(); CurrentSessionTime = JEMBuild.ResolveCurrentSessionTime(); // apply bundle version if (JEMEditorConfiguration.Configuration?.UpdateBundleVersion ?? false) { UpdateBundleVersion(); } JEMBuildFlags.LoadFlags(); JEMBuildFlags.ApplyFlags(); }