From: <lph...@us...> - 2008-08-11 16:00:22
|
Revision: 14166 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=14166&view=rev Author: lphuberdeau Date: 2008-08-11 16:00:28 +0000 (Mon, 11 Aug 2008) Log Message: ----------- [FIX] ext/ssh2 compatibility Modified Paths: -------------- trim/src/accesslib.php trim/src/rclib.php trim/src/sshlib.php Modified: trim/src/accesslib.php =================================================================== --- trim/src/accesslib.php 2008-08-11 15:20:18 UTC (rev 14165) +++ trim/src/accesslib.php 2008-08-11 16:00:28 UTC (rev 14166) @@ -106,12 +106,15 @@ function chdir( $location ); + function setenv( $var, $value ); + function hasExecutable( $name ); } class Access_SSH extends Access implements ShellPrompt { private $location; + private $env = array(); function __construct( Instance $instance ) { @@ -284,6 +287,11 @@ $this->location = $location; } // }}} + function setenv( $var, $value ) // {{{ + { + $this->env[$var] = $value; + } // }}} + function shellExec( $commands ) // {{{ { if( ! is_array( $commands ) ) @@ -292,6 +300,8 @@ $host = new SSH_Host( $this->host, $this->user ); if( $this->location ) $host->chdir( $this->location ); + foreach( $this->env as $key => $value ) + $host->setenv( $key, $value ); return $host->runCommands( $commands ); } // }}} Modified: trim/src/rclib.php =================================================================== --- trim/src/rclib.php 2008-08-11 15:20:18 UTC (rev 14165) +++ trim/src/rclib.php 2008-08-11 16:00:28 UTC (rev 14166) @@ -100,9 +100,9 @@ info( "Performing CVS update on remote host." ); $rep = escapeshellarg( ":{$this->protocol}:{$this->user}@{$this->host}:{$this->root}" ); + $access->chdir( $instance->webroot ); + $access->setenv( 'CVS_RSH', 'ssh' ); $access->shellExec( - "cd " . escapeshellarg( $instance->webroot ), - "export CVS_RSH=ssh", "cvs -d$rep up -d -r " . escapeshellarg( $tag ) ); } Modified: trim/src/sshlib.php =================================================================== --- trim/src/sshlib.php 2008-08-11 15:20:18 UTC (rev 14165) +++ trim/src/sshlib.php 2008-08-11 16:00:28 UTC (rev 14166) @@ -8,6 +8,7 @@ private static $resources = array(); private $location; + private $env = array(); private $host; private $user; @@ -23,6 +24,11 @@ $this->location = $location; } + function setenv( $var, $value ) + { + $this->env[$var] = $value; + } + private function getExtHandle() { if( ! function_exists( 'ssh2_connect' ) ) @@ -77,7 +83,7 @@ { if( $this->location ) $line = "cd " . escapeshellarg($this->location) . "; $line"; - $stream = ssh2_exec( $handle, $line ); + $stream = ssh2_exec( $handle, $line, null, $this->env ); stream_set_blocking( $stream, true ); $content .= stream_get_contents($stream); @@ -92,6 +98,8 @@ if( $this->location ) array_unshift( $commands, "cd " . escapeshellarg($this->location) ); + foreach( $this->env as $name => $value ) + array_unshift( $commands, "export $name=$value" ); $string = implode( " && ", $commands ); $fullcommand = escapeshellarg( $string ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |