When it comes to loading config options, I always use my Ciste library
which has the ciste.config namespace. By default, it looks for a file
named "config.clj" in the root of the project.
config.clj contains a map with the keys being the environment names and
the values are maps of config options. It needs a bit more work, but it
serves my purposes.
The config function will either return the config map, or it will look
up the passed params in the map.
(use 'ciste.config)
(environment) => :development
(load-config)
(config :database :username) => "root"
Even if you don't use Ciste (there's a lot of stuff in there that may
not be relevant to your project) The config ns should at least get you
started.
https://github.com/duck1123/ciste/blob/master/src/main/clojure/ciste/config.clj