Imporoved exception message for GitDownloader (various protocols for github)
parent
25a61cd763
commit
c8d110aa72
|
@ -92,18 +92,20 @@ class GitDownloader extends VcsDownloader
|
|||
// github, autoswitch protocols
|
||||
if (preg_match('{^(?:https?|git)(://github.com/.*)}', $url, $match)) {
|
||||
$protocols = array('git', 'https', 'http');
|
||||
$messages = array();
|
||||
foreach ($protocols as $protocol) {
|
||||
$url = $protocol . $match[1];
|
||||
if (0 === $this->process->execute(call_user_func($commandCallable, $url), $handler)) {
|
||||
return;
|
||||
}
|
||||
$messages[] = '- ' . $url . "\n" . preg_replace('#^#m', ' ', $this->process->getErrorOutput());
|
||||
if (null !== $path) {
|
||||
$this->filesystem->removeDirectory($path);
|
||||
}
|
||||
}
|
||||
|
||||
// failed to checkout, first check git accessibility
|
||||
$this->throwException('Failed to clone ' . $url .' via git, https and http protocols, aborting.' . "\n\n" . $this->process->getErrorOutput(), $url);
|
||||
$this->throwException('Failed to clone ' . $url .' via git, https and http protocols, aborting.' . "\n\n" . implode("\n", $messages), $url);
|
||||
}
|
||||
|
||||
$command = call_user_func($commandCallable, $url);
|
||||
|
|
|
@ -78,19 +78,19 @@ class GitDownloaderTest extends \PHPUnit_Framework_TestCase
|
|||
->will($this->returnValue(1));
|
||||
|
||||
$expectedGitCommand = $this->getCmd("git clone 'https://github.com/composer/composer' 'composerPath' && cd 'composerPath' && git checkout 'ref' && git reset --hard 'ref' && git remote add composer 'https://github.com/composer/composer'");
|
||||
$processExecutor->expects($this->at(1))
|
||||
$processExecutor->expects($this->at(2))
|
||||
->method('execute')
|
||||
->with($this->equalTo($expectedGitCommand))
|
||||
->will($this->returnValue(1));
|
||||
|
||||
$expectedGitCommand = $this->getCmd("git clone 'http://github.com/composer/composer' 'composerPath' && cd 'composerPath' && git checkout 'ref' && git reset --hard 'ref' && git remote add composer 'http://github.com/composer/composer'");
|
||||
$processExecutor->expects($this->at(2))
|
||||
$processExecutor->expects($this->at(4))
|
||||
->method('execute')
|
||||
->with($this->equalTo($expectedGitCommand))
|
||||
->will($this->returnValue(0));
|
||||
|
||||
$expectedGitCommand = $this->getCmd("git remote set-url --push origin 'git@github.com:composer/composer.git'");
|
||||
$processExecutor->expects($this->at(3))
|
||||
$processExecutor->expects($this->at(5))
|
||||
->method('execute')
|
||||
->with($this->equalTo($expectedGitCommand), $this->equalTo(null), $this->equalTo('composerPath'))
|
||||
->will($this->returnValue(0));
|
||||
|
|
Loading…
Reference in New Issue