author | Jaroslav Tulach <jtulach@netbeans.org> |
Wed, 05 Dec 2012 13:17:53 +0100 | |
changeset 405 | 87bcc647df63 |
parent 271 | a1c057f1f756 |
permissions | -rw-r--r-- |
jtulach@268 | 1 |
package org.apidesign.infra.ant; |
jtulach@268 | 2 |
|
jtulach@268 | 3 |
import java.io.File; |
jtulach@268 | 4 |
import java.io.FileWriter; |
jtulach@268 | 5 |
import java.io.IOException; |
jtulach@274 | 6 |
import java.net.URL; |
jtulach@268 | 7 |
import java.util.Map.Entry; |
jtulach@268 | 8 |
import org.apache.tools.ant.BuildException; |
jtulach@268 | 9 |
import org.apache.tools.ant.Task; |
jtulach@268 | 10 |
import org.apache.tools.ant.types.FileSet; |
jtulach@268 | 11 |
import org.apache.tools.ant.types.FilterSet; |
jtulach@268 | 12 |
|
jtulach@268 | 13 |
public class GrepCopy extends Task { |
jtulach@268 | 14 |
private GrepFilter filter = new GrepFilter(); |
jtulach@268 | 15 |
private File dir; |
jtulach@274 | 16 |
private URL url; |
jtulach@268 | 17 |
|
jtulach@268 | 18 |
public GrepCopy() { |
jtulach@268 | 19 |
} |
jtulach@268 | 20 |
|
jtulach@268 | 21 |
public FileSet createFileSet() { |
jtulach@268 | 22 |
return filter.createFileSet(); |
jtulach@268 | 23 |
} |
jtulach@268 | 24 |
|
jtulach@268 | 25 |
public void setTarget(File dir) { |
jtulach@268 | 26 |
this.dir = dir; |
jtulach@268 | 27 |
} |
jtulach@274 | 28 |
|
jtulach@274 | 29 |
public void setBaseURL(URL url) { |
jtulach@274 | 30 |
this.url = url; |
jtulach@274 | 31 |
} |
jtulach@268 | 32 |
|
jtulach@268 | 33 |
@Override |
jtulach@268 | 34 |
public void execute() throws BuildException { |
jtulach@268 | 35 |
filter.setProject(getProject()); |
jtulach@268 | 36 |
|
jtulach@268 | 37 |
FilterSet set = filter.createFilterSet(); |
jtulach@268 | 38 |
|
jtulach@268 | 39 |
for (Object object : set.getFilterHash().entrySet()) { |
jtulach@268 | 40 |
|
jtulach@268 | 41 |
FileWriter w = null; |
jtulach@268 | 42 |
try { |
jtulach@268 | 43 |
Entry en = (Entry) object; |
jtulach@274 | 44 |
String key = (String)en.getKey(); |
jtulach@274 | 45 |
{ |
jtulach@274 | 46 |
File to = new File(dir, key); |
jtulach@274 | 47 |
to.getParentFile().mkdirs(); |
jtulach@274 | 48 |
w = new FileWriter(to); |
jtulach@274 | 49 |
w.write((String) en.getValue()); |
jtulach@274 | 50 |
w.close(); |
jtulach@274 | 51 |
} |
jtulach@274 | 52 |
|
jtulach@274 | 53 |
if (url != null) { |
jtulach@274 | 54 |
URL u = filter.getPath(url, key); |
jtulach@274 | 55 |
File to = new File(dir, key + ".url"); |
jtulach@274 | 56 |
to.getParentFile().mkdirs(); |
jtulach@274 | 57 |
w = new FileWriter(to); |
jtulach@274 | 58 |
w.write(u.toExternalForm()); |
jtulach@274 | 59 |
w.close(); |
jtulach@274 | 60 |
} |
jtulach@274 | 61 |
|
jtulach@268 | 62 |
} catch (IOException ex) { |
jtulach@268 | 63 |
throw new BuildException(ex); |
jtulach@268 | 64 |
} |
jtulach@268 | 65 |
} |
jtulach@268 | 66 |
} |
jtulach@268 | 67 |
} |