From 5848ac39a1fdbc0003c005cda9a1d662514f83fd Mon Sep 17 00:00:00 2001 From: Joshua Granick Date: Mon, 16 Feb 2015 15:26:36 -0800 Subject: [PATCH] Add (initial) 'deploy' command --- lime/project/Command.hx | 1 + lime/project/PlatformTarget.hx | 8 ++++++++ lime/tools/helpers/AssetHelper.hx | 5 ++--- lime/tools/helpers/DeploymentHelper.hx | 19 +++++++++++++++++++ lime/tools/platforms/AndroidPlatform.hx | 8 ++++++++ lime/tools/platforms/BlackBerryPlatform.hx | 8 ++++++++ lime/tools/platforms/EmscriptenPlatform.hx | 8 ++++++++ lime/tools/platforms/FlashPlatform.hx | 8 ++++++++ lime/tools/platforms/HTML5Platform.hx | 8 ++++++++ lime/tools/platforms/IOSPlatform.hx | 8 ++++++++ lime/tools/platforms/LinuxPlatform.hx | 8 ++++++++ lime/tools/platforms/MacPlatform.hx | 8 ++++++++ lime/tools/platforms/TizenPlatform.hx | 8 ++++++++ lime/tools/platforms/WebOSPlatform.hx | 8 ++++++++ lime/tools/platforms/WindowsPlatform.hx | 8 ++++++++ tools/CommandLineTools.hx | 5 +++-- 16 files changed, 121 insertions(+), 5 deletions(-) create mode 100644 lime/tools/helpers/DeploymentHelper.hx diff --git a/lime/project/Command.hx b/lime/project/Command.hx index 4ee42eac1..0994f245d 100644 --- a/lime/project/Command.hx +++ b/lime/project/Command.hx @@ -5,6 +5,7 @@ enum Command { BUILD; CLEAN; + DEPLOY; DISPLAY; UPDATE; RUN; diff --git a/lime/project/PlatformTarget.hx b/lime/project/PlatformTarget.hx index ddd8b68fa..21c3da633 100644 --- a/lime/project/PlatformTarget.hx +++ b/lime/project/PlatformTarget.hx @@ -78,6 +78,13 @@ class PlatformTarget { } + if (!Reflect.hasField (metaFields.deploy, "deploy") && (command == "deploy")) { + + LogHelper.info ("", "\n" + LogHelper.accentColor + "Running command: DEPLOY" + LogHelper.resetColor); + deploy (); + + } + if (!Reflect.hasField (metaFields.install, "ignore") && (command == "install" || command == "run" || command == "test")) { LogHelper.info ("", "\n" + LogHelper.accentColor + "Running command: INSTALL" + LogHelper.resetColor); @@ -115,6 +122,7 @@ class PlatformTarget { @ignore public function build ():Void {} @ignore public function clean ():Void {} + @ignore public function deploy ():Void {} @ignore public function display ():Void {} @ignore public function install ():Void {} @ignore public function rebuild ():Void {} diff --git a/lime/tools/helpers/AssetHelper.hx b/lime/tools/helpers/AssetHelper.hx index 04993317a..1d3300dfb 100644 --- a/lime/tools/helpers/AssetHelper.hx +++ b/lime/tools/helpers/AssetHelper.hx @@ -18,8 +18,7 @@ class AssetHelper { var manifest = new Array (); for (asset in project.assets) { - - + if (asset.type != AssetType.TEMPLATE) { var data = { @@ -27,7 +26,7 @@ class AssetHelper { path : asset.resourceName, type : Std.string(asset.type) } - + manifest.push (data); } diff --git a/lime/tools/helpers/DeploymentHelper.hx b/lime/tools/helpers/DeploymentHelper.hx new file mode 100644 index 000000000..6464e6bec --- /dev/null +++ b/lime/tools/helpers/DeploymentHelper.hx @@ -0,0 +1,19 @@ +package lime.tools.helpers; + + +import lime.project.HXProject; + + +class DeploymentHelper { + + + public static function deploy (project:HXProject, targetFlags:Map , targetDirectory:String) { + + var name = project.meta.title + " (" + project.meta.version + ").zip"; + + ZipHelper.compress (PathHelper.combine (targetDirectory, "bin"), PathHelper.combine (targetDirectory, name)); + + } + + +} \ No newline at end of file diff --git a/lime/tools/platforms/AndroidPlatform.hx b/lime/tools/platforms/AndroidPlatform.hx index 425552d73..9ea689690 100644 --- a/lime/tools/platforms/AndroidPlatform.hx +++ b/lime/tools/platforms/AndroidPlatform.hx @@ -7,6 +7,7 @@ import lime.tools.helpers.AndroidHelper; import lime.tools.helpers.ArrayHelper; import lime.tools.helpers.AssetHelper; import lime.tools.helpers.CPPHelper; +import lime.tools.helpers.DeploymentHelper; import lime.tools.helpers.FileHelper; import lime.tools.helpers.IconHelper; import lime.tools.helpers.LogHelper; @@ -163,6 +164,13 @@ class AndroidPlatform extends PlatformTarget { } + public override function deploy ():Void { + + DeploymentHelper.deploy (project, targetFlags, targetDirectory); + + } + + public override function display ():Void { var hxml = PathHelper.findTemplate (project.templatePaths, "android/hxml/" + (project.debug ? "debug" : "release") + ".hxml"); diff --git a/lime/tools/platforms/BlackBerryPlatform.hx b/lime/tools/platforms/BlackBerryPlatform.hx index bccb8d16b..c495d0ae4 100644 --- a/lime/tools/platforms/BlackBerryPlatform.hx +++ b/lime/tools/platforms/BlackBerryPlatform.hx @@ -6,6 +6,7 @@ import haxe.Template; import lime.tools.helpers.AssetHelper; import lime.tools.helpers.BlackBerryHelper; import lime.tools.helpers.CPPHelper; +import lime.tools.helpers.DeploymentHelper; import lime.tools.helpers.FileHelper; import lime.tools.helpers.HTML5Helper; import lime.tools.helpers.IconHelper; @@ -163,6 +164,13 @@ class BlackBerryPlatform extends PlatformTarget { } + public override function deploy ():Void { + + DeploymentHelper.deploy (project, targetFlags, targetDirectory); + + } + + public override function display ():Void { var hxml = ""; diff --git a/lime/tools/platforms/EmscriptenPlatform.hx b/lime/tools/platforms/EmscriptenPlatform.hx index 28ce2a9a0..47b9edd28 100644 --- a/lime/tools/platforms/EmscriptenPlatform.hx +++ b/lime/tools/platforms/EmscriptenPlatform.hx @@ -7,6 +7,7 @@ import haxe.io.Path; import haxe.Template; import lime.tools.helpers.AssetHelper; import lime.tools.helpers.CPPHelper; +import lime.tools.helpers.DeploymentHelper; import lime.tools.helpers.FileHelper; import lime.tools.helpers.HTML5Helper; import lime.tools.helpers.LogHelper; @@ -179,6 +180,13 @@ class EmscriptenPlatform extends PlatformTarget { } + public override function deploy ():Void { + + DeploymentHelper.deploy (project, targetFlags, targetDirectory); + + } + + public override function display ():Void { var type = "release"; diff --git a/lime/tools/platforms/FlashPlatform.hx b/lime/tools/platforms/FlashPlatform.hx index b8309e966..9a7f453f5 100644 --- a/lime/tools/platforms/FlashPlatform.hx +++ b/lime/tools/platforms/FlashPlatform.hx @@ -5,6 +5,7 @@ import haxe.io.Path; import haxe.Json; import haxe.Template; import lime.tools.helpers.CompatibilityHelper; +import lime.tools.helpers.DeploymentHelper; import lime.tools.helpers.FileHelper; import lime.tools.helpers.FlashHelper; import lime.tools.helpers.PathHelper; @@ -138,6 +139,13 @@ class FlashPlatform extends PlatformTarget { } + public override function deploy ():Void { + + DeploymentHelper.deploy (project, targetFlags, targetDirectory); + + } + + public override function display ():Void { var type = "release"; diff --git a/lime/tools/platforms/HTML5Platform.hx b/lime/tools/platforms/HTML5Platform.hx index da0249010..976a3413d 100644 --- a/lime/tools/platforms/HTML5Platform.hx +++ b/lime/tools/platforms/HTML5Platform.hx @@ -4,6 +4,7 @@ package lime.tools.platforms; import haxe.io.Path; import haxe.Template; import lime.tools.helpers.AssetHelper; +import lime.tools.helpers.DeploymentHelper; import lime.tools.helpers.FileHelper; import lime.tools.helpers.HTML5Helper; import lime.tools.helpers.LogHelper; @@ -78,6 +79,13 @@ class HTML5Platform extends PlatformTarget { } + public override function deploy ():Void { + + DeploymentHelper.deploy (project, targetFlags, targetDirectory); + + } + + public override function display ():Void { var type = "release"; diff --git a/lime/tools/platforms/IOSPlatform.hx b/lime/tools/platforms/IOSPlatform.hx index 200bfa60f..876a91a67 100644 --- a/lime/tools/platforms/IOSPlatform.hx +++ b/lime/tools/platforms/IOSPlatform.hx @@ -7,6 +7,7 @@ import haxe.Template; import lime.tools.helpers.ArrayHelper; import lime.tools.helpers.AssetHelper; import lime.tools.helpers.CPPHelper; +import lime.tools.helpers.DeploymentHelper; import lime.tools.helpers.FileHelper; import lime.tools.helpers.IconHelper; import lime.tools.helpers.IOSHelper; @@ -66,6 +67,13 @@ class IOSPlatform extends PlatformTarget { } + public override function deploy ():Void { + + DeploymentHelper.deploy (project, targetFlags, targetDirectory); + + } + + public override function display ():Void { var hxml = PathHelper.findTemplate (project.templatePaths, "iphone/PROJ/haxe/Build.hxml"); diff --git a/lime/tools/platforms/LinuxPlatform.hx b/lime/tools/platforms/LinuxPlatform.hx index 1bac7205e..387c20648 100644 --- a/lime/tools/platforms/LinuxPlatform.hx +++ b/lime/tools/platforms/LinuxPlatform.hx @@ -5,6 +5,7 @@ import haxe.io.Path; import haxe.Template; import lime.tools.helpers.AssetHelper; import lime.tools.helpers.CPPHelper; +import lime.tools.helpers.DeploymentHelper; import lime.tools.helpers.FileHelper; import lime.tools.helpers.NekoHelper; import lime.tools.helpers.NodeJSHelper; @@ -188,6 +189,13 @@ class LinuxPlatform extends PlatformTarget { } + public override function deploy ():Void { + + DeploymentHelper.deploy (project, targetFlags, targetDirectory); + + } + + public override function display ():Void { var type = "release"; diff --git a/lime/tools/platforms/MacPlatform.hx b/lime/tools/platforms/MacPlatform.hx index 644753da8..0241a22bc 100644 --- a/lime/tools/platforms/MacPlatform.hx +++ b/lime/tools/platforms/MacPlatform.hx @@ -5,6 +5,7 @@ import haxe.io.Path; import haxe.Template; import lime.tools.helpers.AssetHelper; import lime.tools.helpers.CPPHelper; +import lime.tools.helpers.DeploymentHelper; import lime.tools.helpers.FileHelper; import lime.tools.helpers.IconHelper; import lime.tools.helpers.JavaHelper; @@ -177,6 +178,13 @@ class MacPlatform extends PlatformTarget { } + public override function deploy ():Void { + + DeploymentHelper.deploy (project, targetFlags, targetDirectory); + + } + + public override function display ():Void { var type = "release"; diff --git a/lime/tools/platforms/TizenPlatform.hx b/lime/tools/platforms/TizenPlatform.hx index c74b8c936..705624eff 100644 --- a/lime/tools/platforms/TizenPlatform.hx +++ b/lime/tools/platforms/TizenPlatform.hx @@ -5,6 +5,7 @@ import haxe.io.Path; import haxe.Template; import lime.tools.helpers.AssetHelper; import lime.tools.helpers.CPPHelper; +import lime.tools.helpers.DeploymentHelper; import lime.tools.helpers.FileHelper; import lime.tools.helpers.IconHelper; import lime.tools.helpers.PathHelper; @@ -92,6 +93,13 @@ class TizenPlatform extends PlatformTarget { } + public override function deploy ():Void { + + DeploymentHelper.deploy (project, targetFlags, targetDirectory); + + } + + public override function display ():Void { var type = "release"; diff --git a/lime/tools/platforms/WebOSPlatform.hx b/lime/tools/platforms/WebOSPlatform.hx index 1e12b5935..ad5151c1f 100644 --- a/lime/tools/platforms/WebOSPlatform.hx +++ b/lime/tools/platforms/WebOSPlatform.hx @@ -5,6 +5,7 @@ import haxe.io.Path; import haxe.Template; import lime.tools.helpers.AssetHelper; import lime.tools.helpers.CPPHelper; +import lime.tools.helpers.DeploymentHelper; import lime.tools.helpers.FileHelper; import lime.tools.helpers.IconHelper; import lime.tools.helpers.PathHelper; @@ -75,6 +76,13 @@ class WebOSPlatform extends PlatformTarget { } + public override function deploy ():Void { + + DeploymentHelper.deploy (project, targetFlags, targetDirectory); + + } + + public override function display ():Void { var type = "release"; diff --git a/lime/tools/platforms/WindowsPlatform.hx b/lime/tools/platforms/WindowsPlatform.hx index d23eb795b..fea52964c 100644 --- a/lime/tools/platforms/WindowsPlatform.hx +++ b/lime/tools/platforms/WindowsPlatform.hx @@ -5,6 +5,7 @@ import haxe.io.Path; import haxe.Template; import lime.tools.helpers.AssetHelper; import lime.tools.helpers.CPPHelper; +import lime.tools.helpers.DeploymentHelper; import lime.tools.helpers.FileHelper; import lime.tools.helpers.IconHelper; import lime.tools.helpers.NekoHelper; @@ -171,6 +172,13 @@ class WindowsPlatform extends PlatformTarget { } + public override function deploy ():Void { + + DeploymentHelper.deploy (project, targetFlags, targetDirectory); + + } + + public override function display ():Void { var type = "release"; diff --git a/tools/CommandLineTools.hx b/tools/CommandLineTools.hx index b7606ed09..45692d726 100644 --- a/tools/CommandLineTools.hx +++ b/tools/CommandLineTools.hx @@ -113,7 +113,7 @@ class CommandLineTools { updateLibrary (); - case "clean", "update", "display", "build", "run", "rerun", /*"install",*/ "uninstall", "trace", "test": + case "clean", "update", "display", "build", "run", "rerun", /*"install",*/ "uninstall", "trace", "test", "deploy": if (words.length < 1 || words.length > 2) { @@ -702,9 +702,10 @@ class CommandLineTools { LogHelper.println (" \x1b[1mbuild\x1b[0m -- Compile and package for the specified project/target"); LogHelper.println (" \x1b[1mrun\x1b[0m -- Install and run for the specified project/target"); LogHelper.println (" \x1b[1mtest\x1b[0m -- Update, build and run in one command"); - LogHelper.println (" \x1b[1mdisplay\x1b[0m -- Display information for the specified project/target"); + LogHelper.println (" \x1b[1mdeploy\x1b[0m -- Archive and upload builds"); LogHelper.println (" \x1b[1mcreate\x1b[0m -- Create a new project or extension using templates"); LogHelper.println (" \x1b[1mrebuild\x1b[0m -- Recompile native binaries for libraries"); + LogHelper.println (" \x1b[1mdisplay\x1b[0m -- Display information for the specified project/target"); LogHelper.println (" \x1b[1minstall\x1b[0m -- Install a library from haxelib, plus dependencies"); LogHelper.println (" \x1b[1mremove\x1b[0m -- Remove a library from haxelib"); LogHelper.println (" \x1b[1mupgrade\x1b[0m -- Upgrade a library from haxelib");