Skip to content

Env vars are not bound when CoreCliktCommand is used #615

@JakeWharton

Description

@JakeWharton

CliktCommand works fine. CoreSuspendingCliktCommand also broken.

Works:

fun main(vararg args: String) {
	ExampleCommand().main(args)
}

private const val envVarName = "THIS_IS_A_TEST"

private class ExampleCommand : CliktCommand() {
	private val value by option(envvar = envVarName)

	override fun run() {
		println("env: " + System.getenv(envVarName))
		println("property: $value")
	}
}
❯ gw -q installDist && THIS_IS_A_TEST=hello ./build/install/clikt-env-vars/bin/clikt-env-vars
env: hello
property: hello

Does not work:

fun main(vararg args: String) {
	ExampleCommand().main(args)
}

private const val envVarName = "THIS_IS_A_TEST"

private class ExampleCommand : CoreCliktCommand() {
	private val value by option(envvar = envVarName)

	override fun run() {
		println("env: " + System.getenv(envVarName))
		println("property: $value")
	}
}
❯ gw -q installDist && THIS_IS_A_TEST=hello ./build/install/clikt-env-vars/bin/clikt-env-vars
env: hello
property: null

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions