properties-file - Augeas:如何缩短树路径?

标签 properties-file augeas

我的第一个 Augeas 脚本看起来像这样:

set /augeas/load/Properties/lens Properties.lns
set /augeas/load/Properties/incl /firstapp/WEB-INF/classes/some.properties
load
set /files/firstapp/WEB-INF/classes/some.properties/PROPERTY_1 "VALUE A"
set /files/firstapp/WEB-INF/classes/some.properties/PROPERTY_2 "VALUE B"
set /files/firstapp/WEB-INF/classes/some.properties/PROPERTY_3 "VALUE C"
save
set /augeas/load/Properties/lens Properties.lns
set /augeas/load/Properties/incl /secondapp/WEB-INF/classes/more.properties
load
set /files/secondapp/WEB-INF/classes/more.properties/PROPERTY_4 "VALUE D"
set /files/secondapp/WEB-INF/classes/more.properties/PROPERTY_5 "VALUE E"
set /files/secondapp/WEB-INF/classes/more.properties/PROPERTY_6 "VALUE F"
save

我运行它,例如:

augtool -LeAf adjust-properties.aug -r $WEB_SERVER_ROOT/

现在我想知道是否可以通过不一直重复重复出现的路径元素来缩短脚本。


解决方案

根据this answer我可以将我的脚本更新为例如:

transform Properties.lns incl /firstapp/WEB-INF/classes/some.properties
transform Properties.lns incl /secondapp/WEB-INF/classes/more.properties
load
set /augeas/context /files/firstapp/WEB-INF/classes/some.properties
set PROPERTY_1 "VALUE A"
set PROPERTY_2 "VALUE B"
set PROPERTY_3 "VALUE C"
set /augeas/context /files/secondapp/WEB-INF/classes/more.properties
set PROPERTY_4 "VALUE D"
set PROPERTY_5 "VALUE E"
set PROPERTY_6 "VALUE F"
save

最佳答案

您可以做几件事。

首先,在最新的 augeas 版本中,您可以使用 transform 而不是加载命令。

然后,您可以将 /augeas/context 设置为使用较短的相对路径。

最后,您可以使用 defvar 声明变量并在路径表达式中重用它们。

关于properties-file - Augeas:如何缩短树路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31992891/

相关文章:

xml - 如何在 puppet 中使用 augeas 创建格式良好的 xml?

java - 使用 java config 在 Spring 应用程序中的 Web 项目之外单独存储属性

java - 属性文件中的欧元符号未正确显示

java - 从 .properties 文件加载消息时出错

ios - 为什么 Info.plist 在我的 Cocoa Touch 框架中被覆盖?

jboss7.x - 如何在puppet中使用setm

tomcat - 如何修复 Tomcat list 的 Augeas 依赖性?

configuration - 如何使用 Puppet 在 php.ini 中设置 config=value?