Hi Ignacio,
there are a couple of ways to deal with this.
On Sep 19, 2008, at 3:43 PM, Ignacio Coloma wrote:
Is there any way of replacing properties in a file while it's being
copied? I have a file that contains
docBase="${project.projectDir}/src/web"
And I want to copy it and replace the properties automatically.
With ant, I would have used a filterchain (expandproperties) but
with gradle I'm a little lost:
ant.copy(
file: "fromfile.xml",
tofile: "tofile.xml"
//chain: << magic happens here
)
The ant way:
ant.copy(file: "fromfile.xml", tofile: "tofile.xml") {
filterset(begintoken: ...) {
filter(token: ... value: ...)
filter(token: ... value ....)
}
}
Ant on stereoids goes like this:
Map filters = [a: 'b', c: 'd', ...]
ant.copy(file: "fromfile.xml", tofile: "tofile.xml") {
filterset(begintoken: ...) {
filters.each { key, value ->
filter(token: key value: value)
}
}
}
You can bundle multiple ant statements in one context:
ant {
copy(...)
someOtherCommand(...)
}
Build-in:
The resources task has build in functionality for this. See the
(rather thin documentation) in: http://www.gradle.org/api/0.4/org/
gradle/api/tasks/Resources.html
Under the hood it delegates to Ant. The only limitation right now is
that it uses the default Ant begin and end tokens (@). You can't
specify other ones. If you would need this behavior, please file a
Jira.
Groovy:
http://groovy.codehaus.org/Groovy+Templates
- Hans
--
Hans Dockter
Gradle Project lead
http://www.gradle.org
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email