1 package org.apidesign.infra.ant;
4 import java.io.FileWriter;
5 import java.io.IOException;
7 import java.util.Map.Entry;
8 import org.apache.tools.ant.BuildException;
9 import org.apache.tools.ant.Task;
10 import org.apache.tools.ant.types.FileSet;
11 import org.apache.tools.ant.types.FilterSet;
13 public class GrepCopy extends Task {
14 private GrepFilter filter = new GrepFilter();
21 public FileSet createFileSet() {
22 return filter.createFileSet();
25 public void setTarget(File dir) {
29 public void setBaseURL(URL url) {
34 public void execute() throws BuildException {
35 filter.setProject(getProject());
37 FilterSet set = filter.createFilterSet();
39 for (Object object : set.getFilterHash().entrySet()) {
43 Entry en = (Entry) object;
44 String key = (String)en.getKey();
46 File to = new File(dir, key);
47 to.getParentFile().mkdirs();
48 w = new FileWriter(to);
49 w.write((String) en.getValue());
54 URL u = filter.getPath(url, key);
55 File to = new File(dir, key + ".url");
56 to.getParentFile().mkdirs();
57 w = new FileWriter(to);
58 w.write(u.toExternalForm());
62 } catch (IOException ex) {
63 throw new BuildException(ex);