public override bool Execute() { Log.LogDebugMessage("CalculateAdditionalResourceCacheDirectories Task"); Log.LogDebugTaskItems(" AdditionalAndroidResourcePaths:", AdditionalAndroidResourcePaths); Log.LogDebugMessage(" CacheDirectory: {0}", CacheDirectory); if (!AdditionalAndroidResourcePaths.Any()) { return(true); } var md5 = MD5.Create(); Directory.CreateDirectory(CacheDirectory); var directories = new List <ITaskItem> (); foreach (var path in AdditionalAndroidResourcePaths) { var cacheSubDirectory = string.Concat(md5.ComputeHash( Encoding.UTF8.GetBytes(path)).Select(b => b.ToString("X02")) ); var targetDir = Path.Combine(CacheDirectory, cacheSubDirectory); directories.Add(new TaskItem(Path.GetFullPath(targetDir).TrimEnd(Path.DirectorySeparatorChar))); } AdditionalResourceCachePaths = directories.ToArray(); Log.LogDebugTaskItems(" [Output] AdditionalResourceCachePaths:", AdditionalResourceCachePaths); return(!Log.HasLoggedErrors); }
public override bool Execute() { if (!File.Exists(CacheFile)) { Log.LogDebugMessage("{0} does not exist. No Additional Resources found", CacheFile); return(!Log.HasLoggedErrors); } var doc = XDocument.Load(CacheFile); AdditionalAndroidResourcePaths = doc.GetPaths("AdditionalAndroidResourcePaths", "AdditionalAndroidResourcePath"); AdditionalJavaLibraryReferences = doc.GetPaths("AdditionalJavaLibraryReferences", "AdditionalJavaLibraryReference"); AdditionalNativeLibraryReferences = doc.GetPaths("AdditionalNativeLibraryReferences", "AdditionalNativeLibraryReference"); Log.LogDebugTaskItems(" AdditionalAndroidResourcePaths: ", AdditionalAndroidResourcePaths); Log.LogDebugTaskItems(" AdditionalJavaLibraryReferences: ", AdditionalJavaLibraryReferences); Log.LogDebugTaskItems(" AdditionalNativeLibraryReferences: ", AdditionalNativeLibraryReferences); IsResourceCacheValid = AdditionalAndroidResourcePaths.All(x => Directory.Exists(x)) && AdditionalJavaLibraryReferences.All(x => File.Exists(x)) && AdditionalNativeLibraryReferences.All(x => File.Exists(x)); Log.LogDebugMessage(" IsValid: {0}", IsResourceCacheValid); return(!Log.HasLoggedErrors); }
public override bool RunTask() { if (!AdditionalAndroidResourcePaths.Any()) { return(true); } Directory.CreateDirectory(CacheDirectory); var directories = new List <ITaskItem> (); foreach (var path in AdditionalAndroidResourcePaths) { var targetDir = Path.Combine(CacheDirectory, Files.HashString(path)); directories.Add(new TaskItem(Path.GetFullPath(targetDir).TrimEnd(Path.DirectorySeparatorChar))); } AdditionalResourceCachePaths = directories.ToArray(); Log.LogDebugTaskItems(" [Output] AdditionalResourceCachePaths:", AdditionalResourceCachePaths); return(!Log.HasLoggedErrors); }