https://github.com/foxcapades/lib-kotlin-env-access
Tools and utilities for accessing/mapping environment variables.
https://github.com/foxcapades/lib-kotlin-env-access
Last synced: over 1 year ago
JSON representation
Tools and utilities for accessing/mapping environment variables.
- Host: GitHub
- URL: https://github.com/foxcapades/lib-kotlin-env-access
- Owner: Foxcapades
- License: mit
- Created: 2022-01-28T19:26:57.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-01-28T19:57:52.000Z (over 4 years ago)
- Last Synced: 2025-02-12T17:19:22.513Z (over 1 year ago)
- Language: Kotlin
- Size: 62.5 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.adoc
- License: LICENSE
Awesome Lists containing this project
README
= Env Access
:toc:
Tools and utilities for accessing a process' environment.
== Usage
This package provides two base environment accessors, `Env` and `NBEnv`.
`Env` reads the environment as is and provides no safeties around empty or blank
environment variables.
`NBEnv` treats empty or blank environment variables as if they are missing
entirely.
=== Using `Env`
The `Env` type is useful for cases where the inputs are expected to be able to
be blank, and callers assume the responsibility of checking for empty/blank
values.
==== Optional Lookup
[source, kotlin]
----
// Env:
// FOUND=found
// BLANK=""
fun main() {
val found = Env["FOUND"]
assert(found == "found")
val missing = Env["MISSING"]
assert(missing == null)
val blank = Env["BLANK"]
assert(blank == "")
}
----
==== Value or Default
[source, kotlin]
----
// Env:
// FOUND=found
// BLANK=""
fun main() {
val found = Env.get("FOUND", "default")
assert(found == "found")
val missing = Env.get("MISSING", "default")
assert(missing == "default")
val blank = Env.get("BLANK", "default")
assert(blank == "")
}
----
==== Map Value
[source, kotlin]
----
// Env:
// FOUND=1234
// BLANK=""
fun main() {
val found = Env.get("FOUND") { it.toInt() }
assert(found == 1234)
val missing = Env.get("MISSING") { it.toInt() }
assert(missing == null)
// Throws NumberFormatException as "" is not a valid int value.
val blank1 = Env.get("BLANK") { it.toInt() }
val blank2 = Env.get("BLANK") { it.ifBlank { return@get 33 }.toInt() }
assert(blank2 == 33)
}
----
==== Map Value or Default
[source, kotlin]
----
// Env:
// FOUND=1234
// BLANK=""
fun main() {
val found = Env.get("FOUND", 4321) { it.toInt() }
assert(found == 1234)
val missing = Env.get("MISSING", 4321) { it.toInt() }
assert(missing == 4321)
// Throws NumberFormatException as "" is not a valid int value.
val blank1 = Env.get("BLANK", 4321) { it.toInt() }
val blank2 = Env.get("BLANK", 4321) { it.ifBlank { return@get 33 }.toInt() }
assert(blank2 == 33)
}
----
// -------------------------------------------------------------------------- //
=== Using `NBEnv`
==== Optional Lookup
[source, kotlin]
----
// Env:
// FOUND=found
// BLANK=""
fun main() {
val found = NBEnv["FOUND"]
assert(found == "found")
val missing = NBEnv["MISSING"]
assert(missing == null)
val blank = NBEnv["BLANK"]
assert(blank == null)
}
----
==== Value or Default
[source, kotlin]
----
// Env:
// FOUND=found
// BLANK=""
fun main() {
val found = NBEnv.get("FOUND", "default")
assert(found == "found")
val missing = NBEnv.get("MISSING", "default")
assert(missing == "default")
val blank = NBEnv.get("BLANK", "default")
assert(blank == "default")
}
----
==== Map Value
[source, kotlin]
----
// Env:
// FOUND=1234
// BLANK=""
fun main() {
val found = NBEnv.get("FOUND") { it.toInt() }
assert(found == 1234)
val missing = NBEnv.get("MISSING") { it.toInt() }
assert(missing == null)
val blank = NBEnv.get("BLANK") { it.toInt() }
assert(blank == null)
}
----
==== Map Value or Default
[source, kotlin]
----
// Env:
// FOUND=1234
// BLANK=""
fun main() {
val found = NBEnv.get("FOUND", 4321) { it.toInt() }
assert(found == 1234)
val missing = NBEnv.get("MISSING", 4321) { it.toInt() }
assert(missing == 4321)
val blank = NBEnv.get("BLANK", 4321) { it.toInt() }
assert(blank == 4321)
}
----