Hi James,

This looks nice. I do have one question: is it possible to load parts of a
configuration from environment variables?

Eg, in your "location-aware configuration" example, lets say I wanted to
specify the database user and pass configuration options as you do for the
dev configurations, but I want to load them from environment variables in
the prod configuration?

Or, better yet, if it were pluggable (through tagged literals maybe?), so
that I can choose where to load configuration from, eg, zookeeper or etcd).

On Sat Jan 24 2015 at 3:20:13 PM James Henderson <ja...@jarohen.me.uk>
wrote:

> Hi all,
>
> I've just released Phoenix - a library for declarative configuration and
> wiring of Component-based systems. Phoenix came out of a number of
> discussions at ClojureX, thank you to all involved for their suggestions
> and feedback :)
>
> https://github.com/james-henderson/phoenix
>
> If you’ve written a traditional Component-based system, you’ve probably
> experienced having to create and maintain a plethora of ‘system.clj’,
> ‘dev.clj’, ‘user.clj’ etc type namespaces in order to wire-up the system,
> set up configuration-based switches, and duplicate the code to
> start/stop/reload the system. Phoenix removes the need for all of this,
> replacing it with one (or more, if you choose) EDN declaration of how your
> system should be wired up. It should also compose well with any other
> Components you (or anyone else) may have already written.
>
> For a sample project, you can run 'lein new phoenix-webapp <your-project>',
> then 'cd <your-project>' and 'lein dev'. Once the nREPL is up, running '
> (phoenix/reload!)' will stop the system, reload any namespaces, and
> restart the system.
>
> Phoenix is just one possible way of wiring up such a system - I understand
> that there are a fair few ideas floating around out there at the moment!
> I'd be really interested to hear your thoughts - whether it be 'this is
> mostly right, but I wouldn't do that part like that', or 'you've gone about
> this completely the wrong way, because ...' - let me know!
>
> Cheers,
>
> James
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to