Patches is attached.
_________________________________________________________________ Find gifts, buy online with MSN Shopping. http://shopping.msn.com.sg/--- apache-ant-1.5.3-1/src/main/org/apache/tools/ant/taskdefs/Tar.java 2003-04-16 17:28:22.000000000 +0800
+++ Tar.java 2003-07-15 11:09:15.000000000 +0800
@@ -403,6 +403,10 @@
if (!file.isDirectory()) {
te.setSize(file.length());
te.setMode(tarFileSet.getMode());
+ } else if (tarFileSet.getDirMode() >= 0) {
+ // If directory mode is set explicitly,
+ // follow user's requirement
+ te.setMode(tarFileSet.getDirMode());
}
te.setUserName(tarFileSet.getUserName());
te.setGroupName(tarFileSet.getGroup());
@@ -452,6 +456,7 @@
private String[] files = null;
private int mode = 0100644; + private int dirMode = -1;
private String userName = "";
private String groupName = "";
@@ -500,6 +505,34 @@
} /**
+ * Set the mode for directories selected by this tar file set.
+ * <p>
+ * This is to address the needs of setting permissions of
+ * directories in tar file. It is fine to assume a world readable
+ * and accessable permission, i.e., 755 for most projects; how
+ * ever for certain project it is more desirable to restrict
+ * the permissions for certain directory.
+ * </p>
+ *
+ * <p>
+ * If user specified dirMode attribute of tarfileset element,
+ * all directories included in that file set will be set to
+ * the specified mode.
+ * </p>
+ *
+ * @param octalString A 3 digit octal string, specify the user,
+ * group and other modes in the standard Unix fashion for
+ * directories; optional, default not set.
+ */
+ public void setDirMode(String octalString) {
+ this.dirMode = 0100000 | Integer.parseInt(octalString, 8);
+ }
+
+ public int getDirMode() {
+ return dirMode;
+ }
+
+ /**
* The username for the tar entry
* This is not the same as the UID, which is
* not currently set by the task.--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
