Just to back it up a bit, if you really just need the dependencies from the metadata.rb, you can read a file as a Chef::Cookbook::Metadata and call .dependencies() off of it in 3 or 4 lines of code (more with error checking). Here's an example (lines 68-70 and 83)
https://github.com/mattray/spiceweasel/blob/master/lib/spiceweasel/cookbooks.rb#L68
Thanks,Matt RaySenior Technical Evangelist | Opscode Inc." target="_blank"> | (512) 731-2218Twitter, IRC, GitHub: mattray
From: Torben Knerr [ " target="_blank"> ]
Sent: Wednesday, January 09, 2013 5:12 PM
To: " target="_blank">
Subject: [chef] Re: Re: Re: Re: How to obtain cookbook dependencies from metadata.rb?
Hey Mike, Jamie,
Thanks for the replies!
The knockout requirement for librarian in my specific case is http_proxy support.
I would go for Berkshelf just because of 'metadata' otherwise.
Both are great tools, librarian with a focus on simplicity and Berkshelf supporting more workflow-like stuff. I like both equally, but neither fully supports my current case ;-)Cheers, Torben
Am 09.01.2013 23:47 schrieb "Jamie Winsor" < " target="_blank"> >:
Hey Torben,
If you're familiar with Ruby you should be able to read the Berkshelf source to get an idea of how I implemented the metadata keyword. The Berkshelf code base is pretty friendly and you should feel free to use any of the classes which aren't marked @api private in your own codebase.
Is there a reason you aren't using Berkshelf for this? The use that you are describing is 100% supported and something that I use in my projects everyday. (overriding the locations of the dependencies found in the metadata)On Wednesday, January 9, 2013 at 2:31 PM, Mike wrote:
Has someone done something like this already?Um, berkshelf. :)
You can probably figure out some of the work from there. But I have noidea if the Chef cookbook metadata parser will allow for anythingother than a version string following a cookbook name.
-M
On Wed, Jan 9, 2013 at 5:26 PM, Torben Knerr < " target="_blank"> > wrote:Background:
First, I want to emulate Berkshelfs 'metadata' keyword inside a librarianCheffile.
Then I want to override the location for some of the metadata-definedcookbook dependencies in the Cheffile (e.g. use github branch rather thancommunity site)
Has someone done something like this already?
Am 09.01.2013 22:44 schrieb "Torben Knerr" < " target="_blank"> >:
Ohai Chefs,
what's the easiest way to obtain the cookbook dependencies defined inmetadata.rb (only direct dependencies are required)?
I'm not too firm with the chef internals yet, thus my first idea was toevaluate metadata.rb and recording the `depends` calls via `method_missing`- but this doesn't feels quite right...
Thanks!Torben
Archive powered by MHonArc 2.6.16.