You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wagon-commits@maven.apache.org by br...@apache.org on 2006/01/05 04:31:06 UTC

svn commit: r366068 - /maven/wagon/trunk/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/sshext/ScpExternalWagon.java

Author: brett
Date: Wed Jan  4 19:31:02 2006
New Revision: 366068

URL: http://svn.apache.org/viewcvs?rev=366068&view=rev
Log:
[WAGONSSH-33] Support -pw parameter for putty to use password directly

Modified:
    maven/wagon/trunk/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/sshext/ScpExternalWagon.java

Modified: maven/wagon/trunk/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/sshext/ScpExternalWagon.java
URL: http://svn.apache.org/viewcvs/maven/wagon/trunk/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/sshext/ScpExternalWagon.java?rev=366068&r1=366067&r2=366068&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/sshext/ScpExternalWagon.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/sshext/ScpExternalWagon.java Wed Jan  4 19:31:02 2006
@@ -85,6 +85,8 @@
 
     private File privateKey;
 
+    private String password;
+
     // ----------------------------------------------------------------------
     //
     // ----------------------------------------------------------------------
@@ -130,6 +132,10 @@
                 this.privateKey = privateKey;
             }
         }
+        else
+        {
+            this.password = authenticationInfo.getPassword();
+        }
         // nothing to connect to
     }
 
@@ -168,19 +174,13 @@
     public void executeCommand( String command )
         throws CommandExecutionException
     {
-        Commandline cl = new Commandline();
-
-        cl.setExecutable( sshExecutable );
+        boolean putty = sshExecutable.indexOf( "plink" ) >= 0;
 
-        if ( privateKey != null )
-        {
-            cl.createArgument().setValue( "-i" );
-            cl.createArgument().setFile( privateKey );
-        }
+        Commandline cl = createBaseCommandLine( putty, sshExecutable );
 
         if ( port != WagonConstants.UNKNOWN_PORT )
         {
-            if ( sshExecutable.indexOf( "plink" ) >= 0 )
+            if ( putty )
             {
                 cl.createArgument().setLine( "-P " + port );
             }
@@ -190,17 +190,6 @@
             }
         }
 
-        // should check interactive flag, but scpexe never works in interactive mode right now due to i/o streams
-        if ( sshExecutable.indexOf( "plink" ) >= 0 )
-        {
-            cl.createArgument().setValue( "-batch" );
-        }
-        else
-        {
-            cl.createArgument().setValue( "-o" );
-            cl.createArgument().setValue( "BatchMode yes" );
-        }
-
         if ( sshArgs != null )
         {
             cl.createArgument().setLine( sshArgs );
@@ -228,15 +217,11 @@
         }
     }
 
-
-    private void executeScpCommand( File localFile, String remoteFile, boolean put )
-        throws TransferFailedException, ResourceDoesNotExistException
+    private Commandline createBaseCommandLine( boolean putty, String executable )
     {
         Commandline cl = new Commandline();
 
-        cl.setWorkingDirectory( localFile.getParentFile().getAbsolutePath() );
-
-        cl.setExecutable( scpExecutable );
+        cl.setExecutable( executable );
 
         if ( privateKey != null )
         {
@@ -244,13 +229,14 @@
             cl.createArgument().setFile( privateKey );
         }
 
-        if ( port != WagonConstants.UNKNOWN_PORT )
+        if ( putty && password != null )
         {
-            cl.createArgument().setLine( "-P " + port );
+            cl.createArgument().setValue( "-pw" );
+            cl.createArgument().setValue( password );
         }
 
         // should check interactive flag, but scpexe never works in interactive mode right now due to i/o streams
-        if ( scpExecutable.indexOf( "pscp" ) >= 0 )
+        if ( putty )
         {
             cl.createArgument().setValue( "-batch" );
         }
@@ -258,6 +244,23 @@
         {
             cl.createArgument().setValue( "-o" );
             cl.createArgument().setValue( "BatchMode yes" );
+        }
+        return cl;
+    }
+
+
+    private void executeScpCommand( File localFile, String remoteFile, boolean put )
+        throws TransferFailedException, ResourceDoesNotExistException
+    {
+        boolean putty = scpExecutable.indexOf( "pscp" ) >= 0;
+
+        Commandline cl = createBaseCommandLine( putty, scpExecutable );
+
+        cl.setWorkingDirectory( localFile.getParentFile().getAbsolutePath() );
+
+        if ( port != WagonConstants.UNKNOWN_PORT )
+        {
+            cl.createArgument().setLine( "-P " + port );
         }
 
         if ( scpArgs != null )



---------------------------------------------------------------------
To unsubscribe, e-mail: wagon-commits-unsubscribe@maven.apache.org
For additional commands, e-mail: wagon-commits-help@maven.apache.org