{"id":16122067,"url":"https://github.com/foxcapades/lib-kotlin-env-access","last_synced_at":"2025-04-06T11:41:15.279Z","repository":{"id":57732058,"uuid":"453191415","full_name":"Foxcapades/lib-kotlin-env-access","owner":"Foxcapades","description":"Tools and utilities for accessing/mapping environment variables.","archived":false,"fork":false,"pushed_at":"2022-01-28T19:57:52.000Z","size":64,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-12T17:19:22.513Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Foxcapades.png","metadata":{"files":{"readme":"readme.adoc","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-01-28T19:26:57.000Z","updated_at":"2022-01-28T19:29:13.000Z","dependencies_parsed_at":"2022-09-09T03:01:54.229Z","dependency_job_id":null,"html_url":"https://github.com/Foxcapades/lib-kotlin-env-access","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Foxcapades%2Flib-kotlin-env-access","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Foxcapades%2Flib-kotlin-env-access/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Foxcapades%2Flib-kotlin-env-access/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Foxcapades%2Flib-kotlin-env-access/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Foxcapades","download_url":"https://codeload.github.com/Foxcapades/lib-kotlin-env-access/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247478234,"owners_count":20945262,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-09T21:09:17.381Z","updated_at":"2025-04-06T11:41:15.251Z","avatar_url":"https://github.com/Foxcapades.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"= Env Access\n:toc:\n\nTools and utilities for accessing a process' environment.\n\n== Usage\n\nThis package provides two base environment accessors, `Env` and `NBEnv`.\n\n`Env` reads the environment as is and provides no safeties around empty or blank\nenvironment variables.\n\n`NBEnv` treats empty or blank environment variables as if they are missing\nentirely.\n\n=== Using `Env`\n\nThe `Env` type is useful for cases where the inputs are expected to be able to\nbe blank, and callers assume the responsibility of checking for empty/blank\nvalues.\n\n==== Optional Lookup\n\n[source, kotlin]\n----\n// Env:\n//   FOUND=found\n//   BLANK=\"\"\nfun main() {\n  val found = Env[\"FOUND\"]\n  assert(found == \"found\")\n\n  val missing = Env[\"MISSING\"]\n  assert(missing == null)\n\n  val blank = Env[\"BLANK\"]\n  assert(blank == \"\")\n}\n----\n\n==== Value or Default\n\n[source, kotlin]\n----\n// Env:\n//   FOUND=found\n//   BLANK=\"\"\nfun main() {\n  val found = Env.get(\"FOUND\", \"default\")\n  assert(found == \"found\")\n\n  val missing = Env.get(\"MISSING\", \"default\")\n  assert(missing == \"default\")\n\n  val blank = Env.get(\"BLANK\", \"default\")\n  assert(blank == \"\")\n}\n----\n\n==== Map Value\n\n[source, kotlin]\n----\n// Env:\n//   FOUND=1234\n//   BLANK=\"\"\nfun main() {\n  val found = Env.get(\"FOUND\") { it.toInt() }\n  assert(found == 1234)\n\n  val missing = Env.get(\"MISSING\") { it.toInt() }\n  assert(missing == null)\n\n  // Throws NumberFormatException as \"\" is not a valid int value.\n  val blank1 = Env.get(\"BLANK\") { it.toInt() }\n\n  val blank2 = Env.get(\"BLANK\") { it.ifBlank { return@get 33 }.toInt() }\n  assert(blank2 == 33)\n}\n----\n\n==== Map Value or Default\n\n[source, kotlin]\n----\n// Env:\n//   FOUND=1234\n//   BLANK=\"\"\nfun main() {\n  val found = Env.get(\"FOUND\", 4321) { it.toInt() }\n  assert(found == 1234)\n\n  val missing = Env.get(\"MISSING\", 4321) { it.toInt() }\n  assert(missing == 4321)\n\n  // Throws NumberFormatException as \"\" is not a valid int value.\n  val blank1 = Env.get(\"BLANK\", 4321) { it.toInt() }\n\n  val blank2 = Env.get(\"BLANK\", 4321) { it.ifBlank { return@get 33 }.toInt() }\n  assert(blank2 == 33)\n}\n----\n\n// -------------------------------------------------------------------------- //\n\n=== Using `NBEnv`\n\n==== Optional Lookup\n\n[source, kotlin]\n----\n// Env:\n//   FOUND=found\n//   BLANK=\"\"\nfun main() {\n  val found = NBEnv[\"FOUND\"]\n  assert(found == \"found\")\n\n  val missing = NBEnv[\"MISSING\"]\n  assert(missing == null)\n\n  val blank = NBEnv[\"BLANK\"]\n  assert(blank == null)\n}\n----\n\n==== Value or Default\n\n[source, kotlin]\n----\n// Env:\n//   FOUND=found\n//   BLANK=\"\"\nfun main() {\n  val found = NBEnv.get(\"FOUND\", \"default\")\n  assert(found == \"found\")\n\n  val missing = NBEnv.get(\"MISSING\", \"default\")\n  assert(missing == \"default\")\n\n  val blank = NBEnv.get(\"BLANK\", \"default\")\n  assert(blank == \"default\")\n}\n----\n\n==== Map Value\n\n[source, kotlin]\n----\n// Env:\n//   FOUND=1234\n//   BLANK=\"\"\nfun main() {\n  val found = NBEnv.get(\"FOUND\") { it.toInt() }\n  assert(found == 1234)\n\n  val missing = NBEnv.get(\"MISSING\") { it.toInt() }\n  assert(missing == null)\n\n  val blank = NBEnv.get(\"BLANK\") { it.toInt() }\n  assert(blank == null)\n}\n----\n\n==== Map Value or Default\n\n[source, kotlin]\n----\n// Env:\n//   FOUND=1234\n//   BLANK=\"\"\nfun main() {\n  val found = NBEnv.get(\"FOUND\", 4321) { it.toInt() }\n  assert(found == 1234)\n\n  val missing = NBEnv.get(\"MISSING\", 4321) { it.toInt() }\n  assert(missing == 4321)\n\n  val blank = NBEnv.get(\"BLANK\", 4321) { it.toInt() }\n  assert(blank == 4321)\n}\n----\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoxcapades%2Flib-kotlin-env-access","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffoxcapades%2Flib-kotlin-env-access","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoxcapades%2Flib-kotlin-env-access/lists"}