works
This commit is contained in:
@@ -18,34 +18,39 @@ class Platforms {
|
|||||||
|
|
||||||
public def root() {return _root;}
|
public def root() {return _root;}
|
||||||
|
|
||||||
public void forEach(functor, stageSuffix = "", whiteList = [], blackList = []) {
|
public void forEach(Map args, functor) {
|
||||||
steps.print("whiteList = ${whiteList}")
|
def prefix = args.stagePrefix ?: ""
|
||||||
steps.print("blackList = ${blackList}")
|
def suffix = args.stageSuffix ?: ""
|
||||||
_root.Platforms.each { key, dist ->
|
filterJSON(args.whiteList ?: [], args.blackList ?: []).each { key, dist ->
|
||||||
if (dist.enabled) {
|
//steps.print("final ${key}${suffix}")
|
||||||
def ok = true;
|
steps.stage ("${prefix}${key}${suffix}") {
|
||||||
def dn = key.toLowerCase()
|
functor(dist)
|
||||||
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)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
//@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