Jenkins 管道:如何读取包含部分的 ini 文件
Jenkins pipeline: How to read an ini file with sections
有人可以指点我阅读带有部分的 ini 文件中的值的任何参考。这是ini文件的示例
example.ini
[ section1 ]
[[ section 1a ]]
key=value1
[[ section 2a ]]
key=value2
[ section 2 ]
[[ section 1a ]]
key=value1
[[ section 2a ]]
key=value2
希望有以下内容:
x = readFile "example.ini"
print x.section1."section 1a".key
一个选项是将 ini 转换为 json/properties - 然后阅读 - 任何指向此类免费软件转换实用程序 (windows/ubuntu) 的指针也可能有效。
不幸的是,由于这个原因,您必须编写自己的解析器,虽然完成它并不是那么困难的任务,但它就是这样。
并导致在管道中您可以使用 groovy 并创建方法,这将很容易实现
使用从管道调用的 configobj 编写了一个简单的 python 脚本,在此处发布示例:
from configobj import ConfigObj
def convertIni2Properties(conf, sectionPrefix=''):
if not conf.sections:
for scalar in conf.scalars:
print "%s.%s = %s\n" % (sectionPrefix, scalar, conf[('%s' % scalar)]))
for section in conf.sections:
convertIni2Properties(conf['%s' % section], '%s.%s' % (sectionPrefix, section))
conf = ConfigObj('myfile.ini')
convertIni2Properties(conf)
我的 ini 文件有几百行并且使用递归调用有效,没有费心将其更改为迭代。
有人可以指点我阅读带有部分的 ini 文件中的值的任何参考。这是ini文件的示例
example.ini
[ section1 ]
[[ section 1a ]]
key=value1
[[ section 2a ]]
key=value2
[ section 2 ]
[[ section 1a ]]
key=value1
[[ section 2a ]]
key=value2
希望有以下内容:
x = readFile "example.ini"
print x.section1."section 1a".key
一个选项是将 ini 转换为 json/properties - 然后阅读 - 任何指向此类免费软件转换实用程序 (windows/ubuntu) 的指针也可能有效。
不幸的是,由于这个原因,您必须编写自己的解析器,虽然完成它并不是那么困难的任务,但它就是这样。
并导致在管道中您可以使用 groovy 并创建方法,这将很容易实现
使用从管道调用的 configobj 编写了一个简单的 python 脚本,在此处发布示例:
from configobj import ConfigObj
def convertIni2Properties(conf, sectionPrefix=''):
if not conf.sections:
for scalar in conf.scalars:
print "%s.%s = %s\n" % (sectionPrefix, scalar, conf[('%s' % scalar)]))
for section in conf.sections:
convertIni2Properties(conf['%s' % section], '%s.%s' % (sectionPrefix, section))
conf = ConfigObj('myfile.ini')
convertIni2Properties(conf)
我的 ini 文件有几百行并且使用递归调用有效,没有费心将其更改为迭代。