【问题标题】:using berkshelf programmatically以编程方式使用 berkshelf
【发布时间】:2020-02-16 18:30:35
【问题描述】:

我正在使用berkshelf 管理我的食谱。 我想玩一点食谱依赖图。例如:

  • 给定一本说明书,获取它的依赖项(与解析器相同)
  • 给定一本食谱,获取依赖的食谱(与berks contingent 相同)

我试过了

require 'berkshelf'
Berkshelf::Lockfile.new(file_path: './Berksfile.lock')

但它不起作用。

如何在ruby下以编程方式调用berkshelf并实现上述目标?

【问题讨论】:

    标签: ruby chef-infra cookbook berkshelf


    【解决方案1】:

    这不受支持,甚至在支持的同一区号中也不支持。抱歉,我们没有针对这些数据的公共 Ruby API。您可以查看 Solve gem,但它并没有真正用于我们自己的用例之外。

    【讨论】:

    • 感谢您的回复。我简直不敢相信我所听到的——我是否需要开发一个新代码来解析berksfile 锁来分析依赖树?哦,我希望有一种方法可以重用 berkshelf 代码...
    • 这很快就超出了 SO cmets 的范围,但这完全取决于您要完成的工作。
    【解决方案2】:

    如果你有 Berksfile,它可能对你有帮助。

    
    require 'berkshelf'
    
    # initializing berksfile
    s = Berkshelf::Berksfile.from_file('./find_versions/Berksfile')
    
    #install dependencies to create Berksfile.lock 
    s.install()
    
    # parse lockfile
    s.lockfile().parse()
    
    # find dependencies
    puts s.find('cookbook_name').locked_version
    
    

    【讨论】:

    猜你喜欢
    • 2012-01-25
    • 2012-06-15
    • 2014-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-29
    相关资源
    最近更新 更多