Make VcsRepository drivers configurable
parent
deb6ecd49b
commit
4fdc602037
|
@ -13,23 +13,15 @@ class VcsRepository extends ArrayRepository
|
||||||
{
|
{
|
||||||
protected $url;
|
protected $url;
|
||||||
protected $packageName;
|
protected $packageName;
|
||||||
|
protected $debug;
|
||||||
|
|
||||||
public function __construct(array $config)
|
public function __construct(array $config, array $drivers = null)
|
||||||
{
|
{
|
||||||
if (!filter_var($config['url'], FILTER_VALIDATE_URL)) {
|
if (!filter_var($config['url'], FILTER_VALIDATE_URL)) {
|
||||||
throw new \UnexpectedValueException('Invalid url given for PEAR repository: '.$config['url']);
|
throw new \UnexpectedValueException('Invalid url given for PEAR repository: '.$config['url']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->url = $config['url'];
|
$this->drivers = $drivers ?: array(
|
||||||
}
|
|
||||||
|
|
||||||
protected function initialize()
|
|
||||||
{
|
|
||||||
parent::initialize();
|
|
||||||
|
|
||||||
$debug = false;
|
|
||||||
|
|
||||||
$drivers = array(
|
|
||||||
'Composer\Repository\Vcs\GitHubDriver',
|
'Composer\Repository\Vcs\GitHubDriver',
|
||||||
'Composer\Repository\Vcs\GitBitbucketDriver',
|
'Composer\Repository\Vcs\GitBitbucketDriver',
|
||||||
'Composer\Repository\Vcs\GitDriver',
|
'Composer\Repository\Vcs\GitDriver',
|
||||||
|
@ -37,7 +29,21 @@ class VcsRepository extends ArrayRepository
|
||||||
'Composer\Repository\Vcs\HgDriver',
|
'Composer\Repository\Vcs\HgDriver',
|
||||||
);
|
);
|
||||||
|
|
||||||
foreach ($drivers as $driver) {
|
$this->url = $config['url'];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setDebug($debug)
|
||||||
|
{
|
||||||
|
$this->debug = $debug;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function initialize()
|
||||||
|
{
|
||||||
|
parent::initialize();
|
||||||
|
|
||||||
|
$debug = $this->debug;
|
||||||
|
|
||||||
|
foreach ($this->drivers as $driver) {
|
||||||
if ($driver::supports($this->url)) {
|
if ($driver::supports($this->url)) {
|
||||||
$driver = new $driver($this->url);
|
$driver = new $driver($this->url);
|
||||||
$driver->initialize();
|
$driver->initialize();
|
||||||
|
|
Loading…
Reference in New Issue