Build: Allow extra config for integ test to be anything project.file() accepts
This change delays the lookup for whatever is passed to extra config as the source file to happen at execution time. This allows using eg a task which generates a file, but maintains the checks that the file is not a dir and that it exists at runtime.
This commit is contained in:
parent
d6969fcf3a
commit
52f31ee14a
|
@ -184,17 +184,20 @@ class ClusterFormationTasks {
|
|||
Copy copyConfig = project.tasks.create(name: name, type: Copy, dependsOn: setup)
|
||||
copyConfig.into(new File(node.homeDir, 'config')) // copy must always have a general dest dir, even though we don't use it
|
||||
for (Map.Entry<String,Object> extraConfigFile : node.config.extraConfigFiles.entrySet()) {
|
||||
File srcConfigFile = project.file(extraConfigFile.getValue())
|
||||
if (srcConfigFile.isDirectory()) {
|
||||
throw new GradleException("Source for extraConfigFile must be a file: ${srcConfigFile}")
|
||||
}
|
||||
if (srcConfigFile.exists() == false) {
|
||||
throw new GradleException("Source file for extraConfigFile does not exist: ${srcConfigFile}")
|
||||
Closure delayedSrc = {
|
||||
File srcConfigFile = project.file(extraConfigFile.getValue())
|
||||
if (srcConfigFile.isDirectory()) {
|
||||
throw new GradleException("Source for extraConfigFile must be a file: ${srcConfigFile}")
|
||||
}
|
||||
if (srcConfigFile.exists() == false) {
|
||||
throw new GradleException("Source file for extraConfigFile does not exist: ${srcConfigFile}")
|
||||
}
|
||||
return srcConfigFile
|
||||
}
|
||||
File destConfigFile = new File(node.homeDir, 'config/' + extraConfigFile.getKey())
|
||||
copyConfig.from(srcConfigFile)
|
||||
.into(destConfigFile.canonicalFile.parentFile)
|
||||
.rename { destConfigFile.name }
|
||||
copyConfig.from(delayedSrc)
|
||||
.into(destConfigFile.canonicalFile.parentFile)
|
||||
.rename { destConfigFile.name }
|
||||
}
|
||||
return copyConfig
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue