Merge Aether tools

This commit is contained in:
Joshua Granick
2014-09-30 17:41:39 -07:00
parent f1e3707ad9
commit 540aa48c39
272 changed files with 35574 additions and 127 deletions

View File

@@ -0,0 +1,123 @@
package helpers;
import haxe.io.Path;
import haxe.Serializer;
import haxe.Unserializer;
import helpers.PathHelper;
import project.AssetType;
import project.HXProject;
import sys.io.File;
import sys.FileSystem;
class AssetHelper {
public static function createManifest (project:HXProject, targetPath:String = ""):String {
var manifest = new Array <Dynamic> ();
for (asset in project.assets) {
if (asset.type != AssetType.TEMPLATE) {
var data = {
id : asset.id,
path : asset.resourceName,
type : Std.string(asset.type)
}
manifest.push (data);
}
}
var data = Serializer.run (manifest);
if (targetPath != "") {
PathHelper.mkdir (Path.directory (targetPath));
File.saveContent (targetPath, data);
}
return data;
}
public static function processLibraries (project:HXProject):Void {
var handlers = new Array <String> ();
for (library in project.libraries) {
var type = library.type;
if (type == null) {
type = Path.extension (library.sourcePath).toLowerCase ();
}
if (project.libraryHandlers.exists (type)) {
var handler = project.libraryHandlers.get (type);
handlers.remove (handler);
handlers.push (handler);
}
}
if (handlers.length > 0) {
var projectData = Serializer.run (project);
var temporaryFile = PathHelper.getTemporaryFile ();
File.saveContent (temporaryFile, projectData);
for (handler in handlers) {
var outputFile = PathHelper.getTemporaryFile ();
ProcessHelper.runCommand ("", "haxelib", [ "run", handler, "process", temporaryFile, outputFile ]);
if (FileSystem.exists (outputFile)) {
try {
var output = File.getContent (outputFile);
var data:HXProject = Unserializer.run (output);
project.merge (data);
} catch (e:Dynamic) {
LogHelper.error (e);
}
try {
FileSystem.deleteFile (outputFile);
} catch (e:Dynamic) {}
}
}
try {
FileSystem.deleteFile (temporaryFile);
} catch (e:Dynamic) {}
}
}
}