我一直在寻找关于been文件中内容的详细文档,但我找到的都是示例,以及“你可以做到”的非正式内容。(这包括http://berkshelf.com上的材料...)
Q1: Berksfile文件的基本语法是什么?
Q2:可以放入Berksfile文件的(完整)“声明”列表是什么?
Q3:"cookbook“声明有一个可选的散列参数。什么是(完整的)选项列表,由普通的伯克架支持?
发布于 2014-01-13 09:52:20
对于我的回答,我将链接到v2.0.12版本的东西,因为v3现在正在开发中。
A1。基本语法和任何Ruby文件都是一样的,因为be文件只是另一个Ruby DSL (它似乎主要是由this source驱动的,还有他们的DSL Eval Mixin的一些帮助)
A2。完整的声明列表很难定义,因为Ruby可以在任何时候以多种方式进行修改/增强。(monkeypatching万岁)。但是似乎从v2.0.12开始,完整的声明集包括(metadata、group、site、chef_api、cookbook),因为这些都是用expose_method标记的方法。当然,每个选项都取决于每个选项的实现方式。(此外,任何有效的ruby都可以放入A3文件中,我在CleanRoom中利用了这一点,计算过程当然是在属于混合的be类内部进行的)。
A3。同样,可扩展性使这一点变得很困难,但是从几次遍历来看,似乎CookbookSource class使用一些类级别的方法定义了什么是有效选项。好吧,利用这是一个红宝石dsl,我抛出
puts "options: #{Berkshelf::CookbookSource.valid_options}"在我的Berksfile文件中,运行berks并得出以下结果:
options: [:constraint, :locations, :group, :locked_version, :chef_api, :node_name, :client_key, :git, :ref, :branch, :tag, :rel, :github, :protocol, :site, :path, :metadata]现在,所有这些意味着,将需要更多的潜水通过源代码。然而,也许这会给你一个开始看东西的地方?
出于好奇,您觉得http://berkshelf.com缺少哪些文档?
https://stackoverflow.com/questions/21034739
复制相似问题