cookbook 'dev_env', '= 0.1.0'
dev_env (5) Versions 0.1.0 Follow1
Installs/Configures dev_env
cookbook 'dev_env', '= 0.1.0', :supermarket
knife supermarket install dev_env
knife supermarket download dev_env
dev_env Cookbook
A simple Cookbook to setup development environment. Here it takes care the usual procedures to setup a local development which are:
- Install NIX packages.
- Setup your projects.
- Git checkout the project.
- Run post bash commands to complete the setup.
Supported Platforms
Tested in Ubuntu.
Attributes
Main Attributes
<table>
<tr>
<th width="30%">Key</th>
<th>Type</th>
<th>Description</th>
<th>Default</th>
</tr>
<tr>
<td><tt>[:dev_env][:user]</tt></td>
<td>String</td>
<td>User to that will be assigned to own the <tt>wrap-ssh4git.sh</tt> file. This file is required to ignore the host checks when running <tt>git clone/checkout</tt>.</td>
<td><tt>nil</tt></td>
</tr>
<tr>
<td><tt>[:dev_env][:packages]</tt></td>
<td>Array</td>
<td>Array of Hash that contains list of NIX packages to be installed. <tt>package</tt> in below list will refer to the Hash object in this Array.</td>
<td><tt>nil</tt></td>
</tr>
<tr>
<td><tt>[:dev_env][:apps]</tt></td>
<td>Array</td>
<td>Array of Hash that contains list of project/app to be installed. <tt>app</tt> in below list will refer to the Hash object in this Array.</td>
<td><tt>nil</tt></td>
</tr>
</table>
Packages Attributes (package)
<table>
<tr>
<th width="30%">Key</th>
<th>Type</th>
<th>Description</th>
<th>Default</th>
</tr>
<tr>
<td><tt>package[:name]</tt></td>
<td>String</td>
<td>Name of NIX package you wish to install.</td>
<td><tt>nil</tt></td>
</tr>
</table>
Application Attributes (app)
<table>
<tr>
<th width="30%">Key</th>
<th>Type</th>
<th>Description</th>
<th>Default</th>
</tr>
<tr>
<td><tt>app[:checkout]</tt></td>
<td>String</td>
<td>Project checkout path. i.e. if <tt>/home/user/project</tt> is your checkout path, it will run <tt>git clone {app[:git_repo]} /home/user/project</tt>.</td>
<td><tt>nil</tt></td>
</tr>
<tr>
<td><tt>app[:git_repo]</tt></td>
<td>String</td>
<td>Git repository URL.</td>
<td><tt>nil</tt></td>
</tr>
<tr>
<td><tt>app[:revision]</tt></td>
<td>String</td>
<td>Git revision or branch to be used for checkout.</td>
<td><tt>false</tt></td>
</tr>
<tr>
<td><tt>app[:git_action]</tt></td>
<td>String</td>
<td>Git action. Possible values are either <tt>checkout</tt> or <tt>sync</tt></td>
<td><tt>false</tt></td>
</tr>
<tr>
<td><tt>app[:timeout]</tt></td>
<td>Integer</td>
<td>Timeout (in seconds) set for <tt>git</tt> execution.</td>
<td><tt>600</tt></td>
</tr>
<tr>
<td><tt>app[:retries]</tt></td>
<td>Integer</td>
<td>Number of retries if the <tt>git</tt> execution fails.</td>
<td><tt>5</tt></td>
</tr>
<tr>
<td><tt>app[:git_ignore_failure]</tt></td>
<td>Boolean</td>
<td>Indicates if you want to ignore the error if the <tt>git</tt> execution fails.</td>
<td><tt>false</tt></td>
</tr>
<tr>
<td><tt>app[:user]</tt></td>
<td>String</td>
<td>User that will be assigned for the project permission.</td>
<td><tt>nil</tt></td>
</tr>
<tr>
<td><tt>app[:post_commands]</tt></td>
<td>String</td>
<td>Bash command to run from the checkout path after the <tt>git</tt> execution completed.</td>
<td><tt>nil</tt></td>
</tr>
</table>
Usage
dev_env::pre_process
dev_env::pre_process
recipe. This is to install NIX packages.
{ "run_list": [ "recipe[dev_env::pre_process]" ], "json": { dev_env: { packages: [ { name: "curl" }, { name: "apache2" }, ] } } }
dev_env::default
dev_env::default
recipe. This is to setup projects.
{ "run_list": [ "recipe[dev_env::default]" ], "json": { dev_env: { apps: [ { checkout_path: "/vagrant/home/projects/sample_app", git_repo: "git@github.com:railstutorial/sample_app.git", revision: "master", git_action: "checkout", user: "vagrant", post_commands: <<-EOH gem install bundler rake bundle install rake db:seed EOH }, { ... } ] } } }
License and Authors
Author:: Taufek Johar (taufek@gmail.com)
Dependent cookbooks
git >= 0.0.0 |
Contingent cookbooks
There are no cookbooks that are contingent upon this one.
0.1.0
Initial release of dev_env_cookbook
Foodcritic Metric
0.1.0 failed this metric
FC001: Use strings in preference to symbols to access node attributes: /tmp/cook/a0b1994f5cc95abb5b890c49/dev_env/attributes/default.rb:1
FC001: Use strings in preference to symbols to access node attributes: /tmp/cook/a0b1994f5cc95abb5b890c49/dev_env/attributes/default.rb:8
FC001: Use strings in preference to symbols to access node attributes: /tmp/cook/a0b1994f5cc95abb5b890c49/dev_env/attributes/default.rb:22
FC001: Use strings in preference to symbols to access node attributes: /tmp/cook/a0b1994f5cc95abb5b890c49/dev_env/recipes/default.rb:10
FC001: Use strings in preference to symbols to access node attributes: /tmp/cook/a0b1994f5cc95abb5b890c49/dev_env/recipes/pre_process.rb:1
FC001: Use strings in preference to symbols to access node attributes: /tmp/cook/a0b1994f5cc95abb5b890c49/dev_env/recipes/pre_process.rb:6
FC001: Use strings in preference to symbols to access node attributes: /tmp/cook/a0b1994f5cc95abb5b890c49/dev_env/recipes/pre_process.rb:12
FC022: Resource condition within loop may not behave as expected: /tmp/cook/a0b1994f5cc95abb5b890c49/dev_env/recipes/default.rb:11
0.1.0 failed this metric
FC001: Use strings in preference to symbols to access node attributes: /tmp/cook/a0b1994f5cc95abb5b890c49/dev_env/attributes/default.rb:8
FC001: Use strings in preference to symbols to access node attributes: /tmp/cook/a0b1994f5cc95abb5b890c49/dev_env/attributes/default.rb:22
FC001: Use strings in preference to symbols to access node attributes: /tmp/cook/a0b1994f5cc95abb5b890c49/dev_env/recipes/default.rb:10
FC001: Use strings in preference to symbols to access node attributes: /tmp/cook/a0b1994f5cc95abb5b890c49/dev_env/recipes/pre_process.rb:1
FC001: Use strings in preference to symbols to access node attributes: /tmp/cook/a0b1994f5cc95abb5b890c49/dev_env/recipes/pre_process.rb:6
FC001: Use strings in preference to symbols to access node attributes: /tmp/cook/a0b1994f5cc95abb5b890c49/dev_env/recipes/pre_process.rb:12
FC022: Resource condition within loop may not behave as expected: /tmp/cook/a0b1994f5cc95abb5b890c49/dev_env/recipes/default.rb:11