chef
https://github.com/opscode/chef
Ruby
A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure.
Chef::CookbookManifest#manifest
Returns a 'manifest' data structure that can be uploaded to a Chef
Server.
The format is as follows:
{
:cookbook_name => name, # String
:metadata => metadata, # Chef::Cookbook::Metadata
:version => version, # Chef::Version
:name => full_name, # String of "#{name}-#{version}"
:recipes => Array<FileSpec>,
:definitions => Array<FileSpec>,
:libraries => Array<FileSpec>,
:attributes => Array<FileSpec>,
:files => Array<FileSpec>,
:templates => Array<FileSpec>,
:resources => Array<FileSpec>,
:providers => Array<FileSpec>,
:root_files => Array<FileSpec>
}
Where a `FileSpec` is a Hash of the form:
{
:name => file_name,
:path => path,
:checksum => csum,
:specificity => specificity
}Edit
git clone [email protected]:opscode/chef.git
cd chef
open lib/chef/cookbook_manifest.rb
Contribute
# Make a new branchgit checkout -b -your-name--update-docs-Chef--CookbookManifest-manifest-for-pr
# Commit to gitgit add lib/chef/cookbook_manifest.rbgit commit -m "better docs for Chef::CookbookManifest#manifest"
# Open pull requestgem install hub # on a mac you can `brew install hub`
hub fork
git push <your name> -your-name--update-docs-Chef--CookbookManifest-manifest-for-pr
hub pull-request
# Celebrate!