Skip to content

tecteun/argan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Define command line help inline!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages