bodewig 2004/04/13 04:09:01
Modified: docs/manual/OptionalTasks scp.html
src/main/org/apache/tools/ant/taskdefs/optional/ssh Scp.java
Log:
Add special local/remote variants of the file and todir attributes to
explicitly state what is local or remote.
Document verbose attribute.
Submitted by: Rami Ojares
Revision Changes Path
1.13 +45 -3 ant/docs/manual/OptionalTasks/scp.html
Index: scp.html
===================================================================
RCS file: /home/cvs/ant/docs/manual/OptionalTasks/scp.html,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- scp.html 9 Feb 2004 21:50:08 -0000 1.12
+++ scp.html 13 Apr 2004 11:09:01 -0000 1.13
@@ -20,7 +20,7 @@
in the Ant distribution. See <a
href="../install.html#librarydependencies">Library Dependencies</a>
for more information. This task has been tested with jsch-0.1.2 to
-jsch-0.1.9.</p>
+jsch-0.1.14.</p>
<h3>Parameters</h3>
<table border="1" cellpadding="2" cellspacing="0">
@@ -34,19 +34,54 @@
<td valign="top">The file to copy. This can be a local path or a
remote path of the form <i>user[:[EMAIL PROTECTED]:/directory/path</i>.
<i>:password</i> can be ommitted if you use key based
- authentication or specify the password attribute.</td>
+ authentication or specify the password attribute. The way remote
+ path is recognized is whether it contains @ character or not. This
+ will not work if your localPath contains @ character.</td>
<td valign="top" align="center">Yes, unless a nested
<code><fileset></code> element is used.</td>
</tr>
<tr>
+ <td valign="top">localFile</td>
+ <td valign="top">This is an alternative to the file attribute. But
+ this must always point to a local file. The reason this was added
+ was that when you give file attribute it is treated as remote if
+ it contains @ character. This character can exist also in local
+ paths. <em>since Ant 1.6.2</em></td>
+ <td valign="top" align="center">Alternative to file attribute.</td>
+ </tr>
+ <tr>
+ <td valign="top">remoteFile</td>
+ <td valign="top">This is an alternative to the file attribute. But
+ this must always point to a remote file. <em>since Ant 1.6.2</em></td>
+ <td valign="top" align="center">Alternative to file attribute.</td>
+ </tr>
+ <tr>
<td valign="top">todir</td>
<td valign="top">The directory to copy to. This can be a local path
or a remote path of the form <i>user[:[EMAIL
PROTECTED]:/directory/path</i>.
<i>:password</i> can be ommitted if you use key based
- authentication or specify the password attribute.</td>
+ authentication or specify the password attribute. The way remote
+ path is recognized is whether it contains @ character or not. This
+ will not work if your localPath contains @ character.</td>
<td valian="top" align="center">Yes</td>
</tr>
<tr>
+ <td valign="top">localTodir</td>
+ <td valign="top">This is an alternative to the todir
+ attribute. But this must always point to a local directory. The
+ reason this was added was that when you give todir attribute it is
+ treated as remote if it contains @ character. This character can
+ exist also in local paths. <em>since Ant 1.6.2</em></td>
+ <td valian="top" align="center">Alternative to todir attribute.</td>
+ </tr>
+ <tr>
+ <td valign="top">remoteTodir</td>
+ <td valign="top">This is an alternative to the todir
+ attribute. But this must always point to a remote directory.
+ <em>since Ant 1.6.2</em></td>
+ <td valian="top" align="center">Alternative to todir attribute.</td>
+ </tr>
+ <tr>
<td valign="top">port</td>
<td valign="top">The port to connect to on the remote host.</td>
<td valian="top" align="center">No, defaults to 22.</td>
@@ -91,6 +126,13 @@
<td valign="top">Passphrase for your private key.</td>
<td valign="top" align="center">Yes, if you are using key based
authentication.</td>
+ </tr>
+ <tr>
+ <td valign="top">verbose</td>
+ <td valign="top">Determines whether SCP outputs verbosely to the
+ user. Currently this means outputting dots/stars showing the
+ progress of a file transfer. <em>since Ant 1.6.2</em></td>
+ <td valign="top" align="center">No; defaults to false.</td>
</tr>
</table>
<h3>Parameters specified as nested elements</h3>
1.16 +43 -5
ant/src/main/org/apache/tools/ant/taskdefs/optional/ssh/Scp.java
Index: Scp.java
===================================================================
RCS file:
/home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/optional/ssh/Scp.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- Scp.java 7 Apr 2004 13:30:30 -0000 1.15
+++ Scp.java 13 Apr 2004 11:09:01 -0000 1.16
@@ -43,6 +43,7 @@
private String fromUri;
private String toUri;
private List fileSets = null;
+ private boolean isFromRemote, isToRemote;
/**
* Sets the file to be transferred. This can either be a remote
@@ -55,6 +56,7 @@
*/
public void setFile(String aFromUri) {
this.fromUri = aFromUri;
+ this.isFromRemote = isRemoteUri(this.fromUri);
}
/**
@@ -68,9 +70,50 @@
*/
public void setTodir(String aToUri) {
this.toUri = aToUri;
+ this.isToRemote = isRemoteUri(this.toUri);
}
+ /**
+ * Similiar to [EMAIL PROTECTED] #setFile setFile} but explicitly states
that
+ * the file is a local file. This is the only way to specify a
+ * local file with a @ character.
+ * @since Ant 1.6.2
+ */
+ public void setLocalFile(String aFromUri) {
+ this.fromUri = aFromUri;
+ this.isFromRemote = false;
+ }
+
+ /**
+ * Similiar to [EMAIL PROTECTED] #setFile setFile} but explicitly states
that
+ * the file is a remote file.
+ * @since Ant 1.6.2
+ */
+ public void setRemoteFile(String aFromUri) {
+ this.fromUri = aFromUri;
+ this.isFromRemote = true;
+ }
+
+ /**
+ * Similiar to [EMAIL PROTECTED] #setTodir setTodir} but explicitly
states
+ * that the directory is a local. This is the only way to specify
+ * a local directory with a @ character.
+ * @since Ant 1.6.2
+ */
+ public void setLocalTodir(String aToUri) {
+ this.toUri = aToUri;
+ this.isToRemote = false;
+ }
+ /**
+ * Similiar to [EMAIL PROTECTED] #setTodir setTodir} but explicitly
states
+ * that the directory is a remote.
+ * @since Ant 1.6.2
+ */
+ public void setRemoteTodir(String aToUri) {
+ this.toUri = aToUri;
+ this.isToRemote = true;
+ }
/**
* Adds a FileSet tranfer to remote host. NOTE: Either
@@ -102,11 +145,6 @@
+ "FileSet is required.");
}
- boolean isFromRemote = false;
- if (fromUri != null) {
- isFromRemote = isRemoteUri(fromUri);
- }
- boolean isToRemote = isRemoteUri(toUri);
try {
if (isFromRemote && !isToRemote) {
download(fromUri, toUri);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]