diff --git a/src/Composer/Repository/Vcs/SvnDriver.php b/src/Composer/Repository/Vcs/SvnDriver.php index 8404b7cc2..43ba91206 100644 --- a/src/Composer/Repository/Vcs/SvnDriver.php +++ b/src/Composer/Repository/Vcs/SvnDriver.php @@ -16,6 +16,21 @@ class SvnDriver extends VcsDriver implements VcsDriverInterface protected $branches; protected $infoCache = array(); + /** + * @var boolean $useAuth Contains credentials, or not? + */ + protected $useAuth = false; + + /** + * @var string $svnUsername + */ + protected $svnUsername = ''; + + /** + * @var string $svnPassword + */ + protected $svnPassword = ''; + public function __construct($url, IOInterface $io, ProcessExecutor $process = null) { parent::__construct($this->baseUrl = rtrim($url, '/'), $io, $process); @@ -23,6 +38,8 @@ class SvnDriver extends VcsDriver implements VcsDriverInterface if (false !== ($pos = strrpos($url, '/trunk'))) { $this->baseUrl = substr($url, 0, $pos); } + + $this->detectedSvnAuth(); } /** @@ -186,4 +203,25 @@ class SvnDriver extends VcsDriver implements VcsDriverInterface $exit = $processExecutor->execute(sprintf('svn info --non-interactive %s 2>/dev/null', escapeshellarg($url)), $ignored); return $exit === 0; } + + /** + * This is quick and dirty - thoughts? + * + * @return void + * @uses parent::$baseUrl + * @uses self::$useAuth, self::$svnUsername, self::$svnPassword + * @see self::__construct() + */ + protected function detectSvnAuth() + { + $uri = parse_url($this->baseUrl); + if (!isset($uri['user']) || empty($uri['user'])) { + return; + } + + $this->svnUsername = $uri['user']; + $this->svnUsername = $uri['pass']; + + $this->useAuth = true; + } }