update libs

This commit is contained in:
Kirill Chikalin
2025-02-13 17:48:12 +03:00
parent e17e7c2786
commit 275dc598c7
816 changed files with 22479 additions and 10792 deletions

View File

@@ -0,0 +1,266 @@
using System.IO;
using CacheConstants = AssetStoreTools.Constants.Cache;
namespace AssetStoreTools.Utility
{
internal static class CacheUtil
{
public static bool GetFileFromTempCache(string fileName, out string filePath)
{
return GetCacheFile(CacheConstants.TempCachePath, fileName, out filePath);
}
public static bool GetFileFromPersistentCache(string fileName, out string filePath)
{
return GetCacheFile(CacheConstants.PersistentCachePath, fileName, out filePath);
}
public static bool GetFileFromProjectPersistentCache(string projectPath, string fileName, out string filePath)
{
return GetCacheFile(Path.Combine(projectPath, CacheConstants.PersistentCachePath), fileName, out filePath);
}
private static bool GetCacheFile(string rootPath, string fileName, out string filePath)
{
filePath = Path.Combine(rootPath, fileName);
return File.Exists(filePath);
}
public static void CreateFileInTempCache(string fileName, object content, bool overwrite)
{
CreateCacheFile(CacheConstants.TempCachePath, fileName, content, overwrite);
}
public static void CreateFileInPersistentCache(string fileName, object content, bool overwrite)
{
CreateCacheFile(CacheConstants.PersistentCachePath, fileName, content, overwrite);
}
private static void CreateCacheFile(string rootPath, string fileName, object content, bool overwrite)
{
if (!Directory.Exists(rootPath))
Directory.CreateDirectory(rootPath);
var fullPath = Path.Combine(rootPath, fileName);
bool willUpdate = false;
if (File.Exists(fullPath))
{
if (overwrite)
{
File.Delete(fullPath);
willUpdate = true;
}
else
return;
}
switch (content)
{
case byte[] bytes:
File.WriteAllBytes(fullPath, bytes);
break;
default:
File.WriteAllText(fullPath, content.ToString());
break;
}
var keyword = willUpdate ? "Updating" : "Creating";
ASDebug.Log($"{keyword} cache file: '{fullPath}'");
}
public static void DeleteFileFromTempCache(string fileName)
{
DeleteFileFromCache(CacheConstants.TempCachePath, fileName);
}
public static void DeleteFileFromPersistentCache(string fileName)
{
DeleteFileFromCache(CacheConstants.PersistentCachePath, fileName);
}
private static void DeleteFileFromCache(string rootPath, string fileName)
{
var path = Path.Combine(rootPath, fileName);
if (File.Exists(path))
File.Delete(path);
}
//private static void CreateFileInPersistentCache(string fileName, object content, bool overwrite)
//{
// CreateCacheFile(CacheConstants.PersistentCachePath, fileName, content, overwrite);
//}
//private static void CreateCacheFile(string rootPath, string fileName, object content, bool overwrite)
//{
// if (!Directory.Exists(rootPath))
// Directory.CreateDirectory(rootPath);
// var fullPath = Path.Combine(rootPath, fileName);
// if (File.Exists(fullPath))
// {
// if (overwrite)
// File.Delete(fullPath);
// else
// return;
// }
// switch (content)
// {
// case byte[] bytes:
// File.WriteAllBytes(fullPath, bytes);
// break;
// default:
// File.WriteAllText(fullPath, content.ToString());
// break;
// }
// ASDebug.Log($"Creating cached file: '{fullPath}'");
//}
//public static void ClearTempCache()
//{
// if (!File.Exists(Path.Combine(CacheConstants.TempCachePath, CacheConstants.PackageDataFile)))
// return;
// // Cache consists of package data and package texture thumbnails. We don't clear
// // texture thumbnails here since they are less likely to change. They are still
// // deleted and redownloaded every project restart (because of being stored in the 'Temp' folder)
// var fullPath = Path.Combine(CacheConstants.TempCachePath, CacheConstants.PackageDataFile);
// ASDebug.Log($"Deleting cached file '{fullPath}'");
// File.Delete(fullPath);
//}
//public static void CachePackageMetadata(List<Package> data)
//{
// var serializerSettings = new JsonSerializerSettings()
// {
// ContractResolver = Package.CachedPackageResolver.Instance,
// Formatting = Formatting.Indented
// };
// CreateFileInTempCache(CacheConstants.PackageDataFile, JsonConvert.SerializeObject(data, serializerSettings), true);
//}
//public static void UpdatePackageMetadata(Package data)
//{
// if (!GetCachedPackageMetadata(out var cachedData))
// return;
// var index = cachedData.FindIndex(x => x.PackageId.Equals(data.PackageId));
// if (index == -1)
// {
// cachedData.Add(data);
// }
// else
// {
// cachedData.RemoveAt(index);
// cachedData.Insert(index, data);
// }
// CachePackageMetadata(cachedData);
//}
//public static bool GetCachedPackageMetadata(out List<Package> data)
//{
// data = new List<Package>();
// var path = Path.Combine(CacheConstants.TempCachePath, CacheConstants.PackageDataFile);
// if (!File.Exists(path))
// return false;
// try
// {
// var serializerSettings = new JsonSerializerSettings()
// {
// ContractResolver = Package.CachedPackageResolver.Instance
// };
// data = JsonConvert.DeserializeObject<List<Package>>(File.ReadAllText(path, Encoding.UTF8), serializerSettings);
// return true;
// }
// catch
// {
// return false;
// }
//}
//public static void CacheTexture(string packageId, Texture2D texture)
//{
// CreateFileInTempCache($"{packageId}.png", texture.EncodeToPNG(), true);
//}
//public static bool GetCachedTexture(string packageId, out Texture2D texture)
//{
// texture = new Texture2D(1, 1);
// var path = Path.Combine(CacheConstants.TempCachePath, $"{packageId}.png");
// if (!File.Exists(path))
// return false;
// texture.LoadImage(File.ReadAllBytes(path));
// return true;
//}
//public static void CacheWorkflowStateData(string packageId, WorkflowStateData data)
//{
// var fileName = $"{packageId}-workflowStateData.asset";
// CreateFileInPersistentCache(fileName, JsonConvert.SerializeObject(data, Formatting.Indented), true);
//}
//public static bool GetCachedWorkflowStateData(string packageId, out WorkflowStateData data)
//{
// data = null;
// var path = Path.Combine(CacheConstants.PersistentCachePath, $"{packageId}-workflowStateData.asset");
// if (!File.Exists(path))
// return false;
// data = JsonConvert.DeserializeObject<WorkflowStateData>(File.ReadAllText(path, Encoding.UTF8));
// return true;
//}
//public static void CacheValidationStateData(ValidationStateData data)
//{
// var serializerSettings = new JsonSerializerSettings()
// {
// ContractResolver = ValidationStateDataContractResolver.Instance,
// Formatting = Formatting.Indented,
// TypeNameHandling = TypeNameHandling.Auto,
// Converters = new List<JsonConverter>() { new StringEnumConverter() }
// };
// CreateFileInPersistentCache(CacheConstants.ValidationResultFile, JsonConvert.SerializeObject(data, serializerSettings), true);
//}
//public static bool GetCachedValidationStateData(out ValidationStateData data)
//{
// return GetCachedValidationStateData(Constants.RootProjectPath, out data);
//}
//public static bool GetCachedValidationStateData(string projectPath, out ValidationStateData data)
//{
// data = null;
// var path = Path.Combine(projectPath, CacheConstants.PersistentCachePath, CacheConstants.ValidationResultFile);
// if (!File.Exists(path))
// return false;
// try
// {
// var serializerSettings = new JsonSerializerSettings()
// {
// ContractResolver = ValidationStateDataContractResolver.Instance,
// Formatting = Formatting.Indented,
// TypeNameHandling = TypeNameHandling.Auto,
// Converters = new List<JsonConverter>() { new StringEnumConverter() }
// };
// data = JsonConvert.DeserializeObject<ValidationStateData>(File.ReadAllText(path, Encoding.UTF8), serializerSettings);
// return true;
// }
// catch (System.Exception e)
// {
// UnityEngine.Debug.LogException(e);
// return false;
// }
//}
}
}