From 12ddca85d9ac02877f34cb28c1f25cd0008652b6 Mon Sep 17 00:00:00 2001 From: Joseph Cloutier Date: Tue, 28 May 2024 19:33:30 -0400 Subject: [PATCH] Implement `AssetHelper.deleteStaleAssets()`. --- src/lime/tools/AssetHelper.hx | 19 +++++++++++++++++++ src/lime/tools/PlatformTarget.hx | 2 ++ 2 files changed, 21 insertions(+) diff --git a/src/lime/tools/AssetHelper.hx b/src/lime/tools/AssetHelper.hx index 2f9ef857c..a109a4d0d 100644 --- a/src/lime/tools/AssetHelper.hx +++ b/src/lime/tools/AssetHelper.hx @@ -191,6 +191,25 @@ class AssetHelper return manifests; } + public static function deleteStaleAssets(project:HXProject, targetDirectory:String):Void + { + var newAssets = [for (asset in project.assets) asset.targetPath]; + + var recordFile:String = targetDirectory + "/.assets"; + if (FileSystem.exists(recordFile)) + { + for (oldAsset in File.getContent(recordFile).split("\n")) + { + if (oldAsset.length > 0 && newAssets.indexOf(oldAsset) < 0) + { + System.deleteFile(targetDirectory + "/bin/" + oldAsset); + } + } + } + + File.saveContent(recordFile, newAssets.join("\n")); + } + private static function getAssetData(project:HXProject, pathGroups:Map>, libraries:Map, library:String, asset:Asset):Dynamic { diff --git a/src/lime/tools/PlatformTarget.hx b/src/lime/tools/PlatformTarget.hx index 87cf6e1d0..2feba96b9 100644 --- a/src/lime/tools/PlatformTarget.hx +++ b/src/lime/tools/PlatformTarget.hx @@ -103,6 +103,8 @@ class PlatformTarget // AssetHelper.processLibraries (project, targetDirectory); // #end update(); + + AssetHelper.deleteStaleAssets(project, targetDirectory); } if (command == "build" || command == "test")