Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Made repoConfig available for the VcsDriver to be able to provide add…

…itional configuration options easily.
  • Loading branch information...
commit d1a452b00b184655be2132aeb9e426c4a9b02836 1 parent 93628c4
@bboer bboer authored
View
36 src/Composer/Repository/Vcs/SvnDriver.php
@@ -32,9 +32,9 @@ class SvnDriver extends VcsDriver
protected $branches;
protected $infoCache = array();
- protected $trunkLocation = 'trunk';
- protected $branchesLocation = 'branches';
- protected $tagsLocation = 'tags';
+ protected $trunkPath = 'trunk';
+ protected $branchesPath = 'branches';
+ protected $tagsPath = 'tags';
/**
* @var \Composer\Util\Svn
@@ -47,18 +47,18 @@ class SvnDriver extends VcsDriver
public function initialize()
{
$this->url = $this->baseUrl = rtrim(self::normalizeUrl($this->url), '/');
-
- if ($this->config->has('trunkLocation')) {
- $this->trunkLocation = $this->config->get('trunkLocation');
+
+ if (isset($this->repoConfig['trunk-path'])) {
+ $this->trunkPath = $this->repoConfig['trunk-path'];
}
- if ($this->config->has('branchesLocation')) {
- $this->branchesLocation = $this->config->get('branchesLocation');
+ if (isset($this->repoConfig['branches-path'])) {
+ $this->branchesPath = $this->repoConfig['branches-path'];
}
- if ($this->config->has('tagsLocation')) {
- $this->tagsLocation = $this->config->get('tagsLocation');
+ if (isset($this->repoConfig['tags-path'])) {
+ $this->tagsPath = $this->repoConfig['tags-path'];
}
- if (false !== ($pos = strrpos($this->url, '/' . $this->trunkLocation))) {
+ if (false !== ($pos = strrpos($this->url, '/' . $this->trunkPath))) {
$this->baseUrl = substr($this->url, 0, $pos);
}
@@ -73,7 +73,7 @@ public function initialize()
*/
public function getRootIdentifier()
{
- return $this->trunkLocation;
+ return $this->trunkPath;
}
/**
@@ -159,13 +159,13 @@ public function getTags()
if (null === $this->tags) {
$this->tags = array();
- $output = $this->execute('svn ls --verbose', $this->baseUrl . '/' . $this->tagsLocation);
+ $output = $this->execute('svn ls --verbose', $this->baseUrl . '/' . $this->tagsPath);
if ($output) {
foreach ($this->process->splitLines($output) as $line) {
$line = trim($line);
if ($line && preg_match('{^\s*(\S+).*?(\S+)\s*$}', $line, $match)) {
if (isset($match[1]) && isset($match[2]) && $match[2] !== './') {
- $this->tags[rtrim($match[2], '/')] = '/' . $this->tagsLocation .
+ $this->tags[rtrim($match[2], '/')] = '/' . $this->tagsPath .
'/' . $match[2] . '@' . $match[1];
}
}
@@ -189,8 +189,8 @@ public function getBranches()
foreach ($this->process->splitLines($output) as $line) {
$line = trim($line);
if ($line && preg_match('{^\s*(\S+).*?(\S+)\s*$}', $line, $match)) {
- if (isset($match[1]) && isset($match[2]) && $match[2] === $this->trunkLocation . '/') {
- $this->branches[$this->trunkLocation] = '/' . $this->trunkLocation .
+ if (isset($match[1]) && isset($match[2]) && $match[2] === $this->trunkPath . '/') {
+ $this->branches[$this->trunkPath] = '/' . $this->trunkPath .
'/@'.$match[1];
break;
}
@@ -199,13 +199,13 @@ public function getBranches()
}
unset($output);
- $output = $this->execute('svn ls --verbose', $this->baseUrl . '/' . $this->branchesLocation);
+ $output = $this->execute('svn ls --verbose', $this->baseUrl . '/' . $this->branchesPath);
if ($output) {
foreach ($this->process->splitLines(trim($output)) as $line) {
$line = trim($line);
if ($line && preg_match('{^\s*(\S+).*?(\S+)\s*$}', $line, $match)) {
if (isset($match[1]) && isset($match[2]) && $match[2] !== './') {
- $this->branches[rtrim($match[2], '/')] = '/' . $this->branchesLocation .
+ $this->branches[rtrim($match[2], '/')] = '/' . $this->branchesPath .
'/' . $match[2] . '@' . $match[1];
}
}
View
10 src/Composer/Repository/Vcs/VcsDriver.php
@@ -27,6 +27,7 @@
{
protected $url;
protected $originUrl;
+ protected $repoConfig;
protected $io;
protected $config;
protected $process;
@@ -35,16 +36,17 @@
/**
* Constructor.
*
- * @param string $url The URL
+ * @param array $repoConfig The repository configuration
* @param IOInterface $io The IO instance
* @param Config $config The composer configuration
* @param ProcessExecutor $process Process instance, injectable for mocking
* @param callable $remoteFilesystem Remote Filesystem, injectable for mocking
*/
- final public function __construct($url, IOInterface $io, Config $config, ProcessExecutor $process = null, $remoteFilesystem = null)
+ final public function __construct(array $repoConfig, IOInterface $io, Config $config, ProcessExecutor $process = null, $remoteFilesystem = null)
{
- $this->url = $url;
- $this->originUrl = $url;
+ $this->url = $repoConfig['url'];
+ $this->originUrl = $repoConfig['url'];
+ $this->repoConfig = $repoConfig;
$this->io = $io;
$this->config = $config;
$this->process = $process ?: new ProcessExecutor;
View
11 src/Composer/Repository/VcsRepository.php
@@ -33,6 +33,7 @@ class VcsRepository extends ArrayRepository
protected $versionParser;
protected $type;
protected $loader;
+ protected $repoConfig;
public function __construct(array $repoConfig, IOInterface $io, Config $config, array $drivers = null)
{
@@ -50,9 +51,7 @@ public function __construct(array $repoConfig, IOInterface $io, Config $config,
$this->type = isset($repoConfig['type']) ? $repoConfig['type'] : 'vcs';
$this->verbose = $io->isVerbose();
$this->config = $config;
- if (isset($repoConfig['config']) && is_array($repoConfig['config'])) {
- $this->config->merge(array('config' => $repoConfig['config']));
- }
+ $this->repoConfig = $repoConfig;
}
public function setLoader(LoaderInterface $loader)
@@ -64,7 +63,7 @@ public function getDriver()
{
if (isset($this->drivers[$this->type])) {
$class = $this->drivers[$this->type];
- $driver = new $class($this->url, $this->io, $this->config);
+ $driver = new $class($this->repoConfig, $this->io, $this->config);
$driver->initialize();
return $driver;
@@ -72,7 +71,7 @@ public function getDriver()
foreach ($this->drivers as $driver) {
if ($driver::supports($this->io, $this->url)) {
- $driver = new $driver($this->url, $this->io, $this->config);
+ $driver = new $driver($this->repoConfig, $this->io, $this->config);
$driver->initialize();
return $driver;
@@ -81,7 +80,7 @@ public function getDriver()
foreach ($this->drivers as $driver) {
if ($driver::supports($this->io, $this->url, true)) {
- $driver = new $driver($this->url, $this->io, $this->config);
+ $driver = new $driver($this->repoConfig, $this->io, $this->config);
$driver->initialize();
return $driver;
Please sign in to comment.
Something went wrong with that request. Please try again.