| I recently switched from various settings.yml files to a bash script. I can't believe I hadn't made the move sooner! Such a huuuge improvement. A few good reasons: 1) Language agnostic -- I can use common configuration for Ruby, Node.js, Makefiles, Bash scripts, etc. Without having to find/use a parser for my config file settings, nor worrying about executing a Ruby script from a Python process, or whatever. 2) Real programming constructs -- I can easily test a boolean condition, interpolate variables, and otherwise minimize copy/paste between configuration sections. 3) Available at bootstrap -- Don't need to install Ruby or Python or anything like that. The very first scripts I run can use the environment without compromise. Particularly useful because machines are bootstrapped with Makefiles, which play well with the environment. I modeled my app env script on the behavior of the `env` command (in fact, I delegate to it). See an example script in this gist: https://gist.github.com/1388478 Note the examples. By delegating to `env`, you get a few features for free: 1) Executing any process within the environment 2) Passing additional environment variables on the command line 3) Printing of environments (great for diffing!) |