works
This commit is contained in:
@@ -18,34 +18,39 @@ class Platforms {
|
||||
|
||||
public def root() {return _root;}
|
||||
|
||||
public void forEach(functor, stageSuffix = "", whiteList = [], blackList = []) {
|
||||
steps.print("whiteList = ${whiteList}")
|
||||
steps.print("blackList = ${blackList}")
|
||||
_root.Platforms.each { key, dist ->
|
||||
if (dist.enabled) {
|
||||
def ok = true;
|
||||
def dn = key.toLowerCase()
|
||||
if (whiteList.size() > 0) {
|
||||
whiteList.each { l ->
|
||||
if (dn.indexOf(l) < 0) {
|
||||
ok = false;
|
||||
steps.print("${key} skip because of whiteList")
|
||||
}
|
||||
}
|
||||
}
|
||||
blackList.each { l ->
|
||||
if (dn.indexOf(l) >= 0) {
|
||||
ok = false;
|
||||
steps.print("${key} skip because of blackList")
|
||||
}
|
||||
}
|
||||
if (ok) {
|
||||
steps.stage ("${key}${stageSuffix}") {
|
||||
functor(dist)
|
||||
}
|
||||
}
|
||||
public void forEach(Map args, functor) {
|
||||
def prefix = args.stagePrefix ?: ""
|
||||
def suffix = args.stageSuffix ?: ""
|
||||
filterJSON(args.whiteList ?: [], args.blackList ?: []).each { key, dist ->
|
||||
//steps.print("final ${key}${suffix}")
|
||||
steps.stage ("${prefix}${key}${suffix}") {
|
||||
functor(dist)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//@NonCPS
|
||||
private Boolean filterDist(name, dist, whiteList, blackList) {
|
||||
if (!dist.enabled) {
|
||||
return false;
|
||||
}
|
||||
def in_white = true, in_black = false
|
||||
def dn = name.toLowerCase()
|
||||
if (whiteList.size() > 0) {
|
||||
in_white = false
|
||||
whiteList.each { l -> if (dn.indexOf(l) >= 0) { in_white = true } }
|
||||
}
|
||||
blackList.each { l -> if (dn.indexOf(l) >= 0) { in_black = true } }
|
||||
return in_white && !in_black
|
||||
}
|
||||
|
||||
private def filterJSON(whiteList, blackList) {
|
||||
def ret = [:]
|
||||
_root.Platforms.each({name, dist ->
|
||||
if (filterDist(name, dist, whiteList, blackList))
|
||||
ret[name] = dist
|
||||
})
|
||||
return ret
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user