Automating Chef deployments

Scripts that do the following:
(1) Updates version in environment file for the specified application;
(2) Commits changes to repository with the appropriate message;
(3) Uploads environment file(s) to Chef server;
(4) Runs chef client where appropriate.