2017-06-13 91 views
0

我有一个计算的一个分支的所有标签的方法:gradle这个:常规命令行 - grep的

def method = { -> 
try { 
    def code = new ByteArrayOutputStream() 
    exec { 
     commandLine 'git', 'tag', '--list' 
     standardOutput = code 
    } 
    return code.toString().split("\n").size() 
} 
catch (ignored) { 
    return -1; 
} 
} 

我想改变它的方式,计算出含有特定字符串的标签。遗憾的是这样的:

命令行 '混帐', '标签', '--list', '|', 'grep的', '关键字'

不能按预期工作。任何想法为什么?

回答

1

回答问题why删除try-catch-ignore或只要管|是壳功能的一部分返回-1


之前打印错误堆栈跟踪,建立commandline这样的:

commandLine "bash", "-c", "git tag --list | grep 'keyword'" 

作为替代方案,您可以在常规级别上进行过滤:

return code.toString().split("\n").findAll{i-> i~='keyword'}.size() 

这里keyword可能是一个正则表达式