如何使用Chef :: Util :: FileEdit函数保留缩进?

时间:2018-03-21 06:03:57

标签: ruby chef chef-recipe chef-solo

问题相当简单,我在FileEdit文档中找不到任何与缩进相关的内容。

我想要的是使用inser_line_after_match函数,下一行应该添加与正则表达式行一样多的缩进。

有可能吗?

例如 - 当我使用

file_xml.insert_line_after_match(/<cookie-path>\/analytics<\/cookie-path>/, "<cookie-secure>true</cookie-secure>") -

输出

<session-descriptor>
    <cookie-path>/analytics</cookie-path>
<cookie-secure>true</cookie-secure>
</session-descriptor>

我想要的是缩进,例如 -

<session-descriptor>
    <cookie-path>/analytics</cookie-path>
    <cookie-secure>true</cookie-secure>
</session-descriptor>

另外我知道我可以对空格进行硬编码,但是我并不总是知道有多少缩进被使用,所以这个解决方案并不是完美的。

1 个答案:

答案 0 :(得分:0)

回答第一部分:FileEdit是Chef的内部API,我们不支持在配方代码中使用它。不要这样做。周期。

更有用的答案:您需要在替换字符串中手动包含必需的空格。