The following code makes sure that everybody has brew, node, and gulp:
# Download homebrew for Mac
$ /usr/bin/ruby -e "https://..."
# Install node using brew
$ sudo brew install node
# Install gulp for building
$ npm install --global gulp-cli
Each developer needed to be in charge of setting up their own developer environment. This is usually a set of commands in a wiki somewhere.
$ git clone https://your-zenv-fork/..
$ cd zenv
$ python install.py
Now, bringing on new developers is easy. Just clone and install!
Let's say you've decided to write a tool that parses production logs called parse_logs. It's been very useful for you, so you want others to be able to use it as well. Sharing it with your team is as simple as adding it to the bin folder and pushing.
# This puts you in the ZEnv checkout
$ cd "$ZENV_ROOT"
$ mv ~/bin/parse_logs bin/
$ git commit -am 'Adding parse_logs tool'
$ git push
Any executable that works on the command line can be added to ZENv by moving it into the /bin directory.
# Pick up changes from git
ZENv$ update_zenv
ZENv$ parse_logs
ZENv$ ... (really sweet tool output)
Other developers can easily pull down the changes to get access to your tool.
Sometimes you'll need to work with multiple checkouts of different projects, each with their own set of requirements. ZENv has support for creating sub-environments that allow you to change the set of available developer tools and environment variables depending on what project a developer needs to work on at the time.
$ cd db_backend
$ phing -logger -Dprops=../myprops
...
$ cd ../app_frontend
$ make
...
Each project has a unique set of commands to build that requires developers to understand each build system and their respective capabilities.
ZENv$ use db_backend
ZENv$ build
...
ZENv$ use app_frontend
ZENv$ build
...
With ZENv, there's no need to spend time figuring out the subtleties of each project's build system. Just build!
© 2007-2016 Zoosk, Inc. All rights reserved