Yaml

Since v2.1.0

Arkenv support the yaml file format.

This functionality is located in a separate module arkenv-yaml.

Add it as a dependency in your build.gradle.

compile "com.apurebase:arkenv-yaml:$arkenv_version"

Install the YamlFeature and specify the file to load from.

Usage

class Ark : Arkenv(configuration = {
    install(YamlFeature("config"))
}) {
    val mysqlPassword: String by argument()
}

Arkenv will look for the file in the resources.

Like with environment variables, Arkenv will look for the snake-case version of any double-hyphen names.

An example yaml file config.yml could have the following content:

mysql_password : JKE9ehnEA

Nested keys will be concatenated using an underscore _.

Arrays will be parsed as a comma-separated string.

Profiles

The yaml feature can also be used together with the profile feature to load yaml source files. Specify additional parsers in the constructor.

class Ark : Arkenv("Example", configureArkenv {
    install(ProfileFeature(parsers = listOf(::YamlFeature)))
}) {
    ...
}

For further information see Profiles.

Customization

Locations

By default, Arkenv will look for profiles in the following relative locations on both the classpath and the file system:

  • /
  • /config

You can add additional locations by using the location argument, which accepts a comma-separated list of directory locations or file paths.

  • Argument: --arkenv-property-location
  • Env var: ARKENV_PROPERTY_LOCATION
  • Code: PropertyFeature(locations = listOf("./path/"))