Command Line

Arkenv supports parsing arguments from the command line. The following exemplifies how to pass arguments correctly.

class Configuration {
    val int: Int by argument("-i", "--int")
    
    val bool: Boolean by argument("-b", "--bool")
}

The above example defines two properties, int and bool.

In order to set int equal to 5 and bool to true, one can call the program like this:

java -jar app.jar -i 5 -b

java -jar app.jar --int 5 --bool

Any of the names defined in the argument are valid.

Assignment

Another way to set arguments is to use assignments.

java -jar app.jar int=5 bool=false

This is especially useful when a boolean needs to be true by default and false when passed as a parameter.

Boolean Merge

When multiple boolean arguments are declared, you can merge their arguments instead of defining them separately.

Given the following configuration class:

class Configuration {
    val doRun: Boolean by argument("-d", "--do-run")
    val production: Boolean by argument("-p", "--production")
    val something: Boolean by argument("-s", "--something")
}

Either of the following will turn all arguments true: -d -p -s -dps -spd -sp -d