From 565b600d95c3b4c47ad7f7a78cd4c5f0c477ce18 Mon Sep 17 00:00:00 2001
From: Stefan Bodewig
Date: Thu, 3 Aug 2000 09:43:18 +0000
Subject: [PATCH] Added flatten attribute to . Submitted by: Jeff
Martin
git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@267879 13f79535-47bb-0310-9956-ffa450edef68
---
docs/index.html | 7 +++++++
src/main/org/apache/tools/ant/taskdefs/Copydir.java | 12 +++++++++++-
2 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/docs/index.html b/docs/index.html
index dd16c719e..df277669e 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -855,6 +855,13 @@ this attribute has been replaced by the excludes attribute.
the copy
No |
+
+ flatten |
+ ignore directory structure of source directory,
+ copy all files into a single directory - specified by the dest
+ attribute (default is false). |
+ No |
+
forceoverwrite |
overwrite existing files even if the destination
diff --git a/src/main/org/apache/tools/ant/taskdefs/Copydir.java b/src/main/org/apache/tools/ant/taskdefs/Copydir.java
index 393a2b355..6d6292d3b 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Copydir.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Copydir.java
@@ -70,6 +70,7 @@ public class Copydir extends MatchingTask {
private File srcDir;
private File destDir;
private boolean filtering = false;
+ private boolean flatten = false;
private boolean forceOverwrite = false;
private Hashtable filecopyList = new Hashtable();
@@ -85,6 +86,10 @@ public class Copydir extends MatchingTask {
filtering = Project.toBoolean(filter);
}
+ public void setFlatten(boolean flatten) {
+ this.flatten = flatten;
+ }
+
public void setForceoverwrite(String force) {
forceOverwrite = Project.toBoolean(force);
}
@@ -127,7 +132,12 @@ public class Copydir extends MatchingTask {
for (int i = 0; i < files.length; i++) {
String filename = files[i];
File srcFile = new File(from, filename);
- File destFile = new File(to, filename);
+ File destFile;
+ if (flatten) {
+ destFile = new File(to, new File(filename).getName());
+ } else {
+ destFile = new File(to, filename);
+ }
if (forceOverwrite ||
(srcFile.lastModified() > destFile.lastModified())) {
filecopyList.put(srcFile.getAbsolutePath(),
|