Initial release of HXP

We have released an initial version of HXP, a script library spun from the core of the Lime and OpenFL command-line tools.

You might have seen the presentation at Haxe Summit talking about the “project.hxp” functionality available in the tools. We’ve taken this and built it into a whole library, and will continue to make changes to the Lime/OpenFL tools to rely more on it.

What can it do? At its simplest, you can turn ordinary Haxe files into scripts, without a compilation step.

Here’s a quick example:

// script.hx
class Script {
    public function new () {
        trace ("Hello from my script");
        System.mkdir ("bin");
        new HXML ({ cp: ["src"], main: "Main.hx", js: "bin/index.js" }).build ();
        PlatformTools.startWebServer ("bin");
    }
}
hxp script.hx

You can also pass arguments to your script:

class Script extends hxp.Script {
    public function new () {
        super ();
        trace (command);
        trace (commandArgs);
        trace (flags.keys ());
        trace (defines.keys ());
    }
}
hxp commandName arg1 -Ddefine arg2 -Ddefine2=value -flag -anotherflag
class Script extends hxp.Script {
    public function new () {
        hxp.Log ("Building multiple projects!);
        hxp.System.runCommand ("Project1", "lime", args);
        hxp.System.runCommand ("Project2", "lime", args);
    }
}

It works on Haxe 4 (using eval) or Haxe 3 (using Neko)

It has no CFFI requirement either, so it doesn’t have to be rebuilt.

We’re working on a 2.x API, and would love your feedback and help to continue to make this a more robust tool

5 Likes