Pure Clojure/ClojureScript parser of dotenv file syntax.
Parse the contents of a dotenv file, returns a map.
export
keyword, and whitespace around the =
sign is ignored#
(and optionally whitespace) are ignored{:expand? true}
is set. Values can be interpolated from vars set
earlier in the contents, passed in as the :vars
options, or on Clojure (not
ClojureScript) will be filled from the process environment (using
System/getenv
).To use the latest release, add the following to your deps.edn
(Clojure CLI)
com.lambdaisland/dotenv {:mvn/version "0.2.5"}
or add the following to your project.clj
(Leiningen)
[com.lambdaisland/dotenv "0.2.5"]
(require '[lambdaisland.dotenv :as dotenv])
(dotenv/parse-dotenv
"FOO=xxx
BAR=\"${FOO} hello ${FOO}\"
FILE_PATH=${HOME}/my_file"
{:expand? true})
;; => {"FOO" "xxx", "BAR" "xxx hello xxx", "FILE_PATH" "/home/arne/my_file"}
dotenv is part of a growing collection of quality Clojure libraries created and maintained by the fine folks at Gaiwan.
Pay it forward by becoming a backer on our Open Collective, so that we may continue to enjoy a thriving Clojure ecosystem.
You can find an overview of our projects at lambdaisland/open-source.
Everyone has a right to submit patches to dotenv, and thus become a contributor.
Contributors MUST
*
**
Contributors SHOULD
If you submit a pull request that adheres to these rules, then it will almost certainly be merged immediately. However some things may require more consideration. If you add new dependencies, or significantly increase the API surface, then we need to decide if these changes are in line with the project's goals. In this case you can start by writing a pitch, and collecting feedback on it.
*
This goes for features too, a feature needs to solve a problem. State the problem it solves, then supply a minimal solution.
**
As long as this project has not seen a public release (i.e. is not on Clojars)
we may still consider making breaking changes, if there is consensus that the
changes are justified.
Copyright © 2022 Arne Brasseur and Contributors
Licensed under the term of the Mozilla Public License 2.0, see LICENSE.
Can you improve this documentation?Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close