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
    }

Source | Google | Stack overflow

Edit

git clone [email protected]:opscode/chef.git

cd chef

open lib/chef/cookbook_manifest.rb

Contribute

# Make a new branch

git checkout -b -your-name--update-docs-Chef--CookbookManifest-manifest-for-pr


# Commit to git

git add lib/chef/cookbook_manifest.rbgit commit -m "better docs for Chef::CookbookManifest#manifest"


# Open pull request

gem 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!