argan

Define command line help inline!
https://github.com/tecteun/argan/

To install, run:

haxelib install argan 1.0.5 

See using Haxelib in Haxelib documentation for more information.

README.md

Argan

Define command line help inline! Argan is nuts! 🥜 🎉

Examples

For sys targets (see https://api.haxe.org/Sys.html for a list of targets supporting the sys package):

if(Argan.has("help", "show this help")){
    Sys.println("Usage: 'my_executable.exe --option=value or -option value'");
    for(h in Argan.help().keys())
        Sys.println('--${StringTools.rpad(h, " ", 12)}${Argan.help()[h]}');
    Sys.println('');
    Sys.exit(0);
}

var debug = Argan.has("debug", "enable debug mode");
var param1 = Argan.getDefault("some_parameter", "configure some parameter", '//default_url_as_example/');
var param2 = Argan.getDefault("some_boolean", "configure some boolean", true);
var param3 = Argan.getDefault("some_int", "configure some int", 1);

For other non-sys targets:

if(Argan.has("help", "show this help")){
    trace("Usage: 'pass object with options to Argan.start, for example Argan.start({ debug : true })'");
    for(h in Reflect.fields(Argan.help(true)))
        Sys.println('--${StringTools.rpad(h, " ", 12)}${Reflect.field(Argan.help(true), h)}');
    trace('');
    return;
}
var debug = Argan.has("debug", "enable debug mode");
var param1 = Argan.getDefault("some_parameter", "configure some parameter", '//default_url_as_example/');
var param2 = Argan.getDefault("some_boolean", "configure some boolean", true);
var param3 = Argan.getDefault("some_int", "configure some int", 1);

Example program

see examples/sys/Main.hx

building examples/sys:

compile with

haxe examples/sys/build.hxml

running

./bin/main --help

outputs:

Defines

Serialize options into json for access by other things

-D argan_json_output=filename.json
Contributors
tecteun
Version
1.0.5
Published
7 years ago
License
MIT

All libraries are free

Every month, more than a thousand developers use Haxelib to find, share, and reuse code — and assemble it in powerful new ways. Enjoy Haxe; It is great!

Explore Haxe

Haxe Manual

Haxe Code Cookbook

Haxe API documentation

You can try Haxe in the browser! try.haxe.org

Join us on GitHub!

Haxe is being developed on GitHub. Feel free to contribute or report issues to our projects.

Haxe on GitHub