Jenkins管道:如何阅读包含

时间:2018-04-16 18:58:43

标签: jenkins-pipeline 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)的指针也可能有效。

2 个答案:

答案 0 :(得分:0)

不幸的是,由于这个原因,你必须编写自己的解析器,虽然这不是一项艰巨的任务,但它确实如此。

并且在管道中导致你可以使用groovy和create方法,这很容易实现

答案 1 :(得分:0)

使用从管道调用的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文件是几百行并且使用递归调用工作,并不打算将其更改为迭代。