1
0
Fork 0

Always set the push url after git updates

pull/528/head
Jordi Boggiano 2012-04-03 19:49:57 +02:00
parent cb4d77d014
commit 66be50ce71
1 changed files with 12 additions and 7 deletions

View File

@ -34,13 +34,7 @@ class GitDownloader extends VcsDownloader
};
$this->runCommand($commandCallable, $package->getSourceUrl(), $path);
// set push url for github projects
if (preg_match('{^(?:https?|git)://github.com/([^/]+)/([^/]+?)(?:\.git)?$}', $package->getSourceUrl(), $match)) {
$pushUrl = 'git@github.com:'.$match[1].'/'.$match[2].'.git';
$cmd = sprintf('cd %s && git remote set-url --push origin %s', escapeshellarg($path), escapeshellarg($pushUrl));
$this->process->execute($cmd, $ignoredOutput);
}
$this->setPushUrl($package, $path);
}
/**
@ -58,6 +52,7 @@ class GitDownloader extends VcsDownloader
};
$this->runCommand($commandCallable, $target->getSourceUrl());
$this->setPushUrl($target, $path);
}
/**
@ -106,4 +101,14 @@ class GitDownloader extends VcsDownloader
throw new \RuntimeException('Failed to execute ' . $command . "\n\n" . $this->process->getErrorOutput());
}
}
protected function setPushUrl(PackageInterface $package, $path)
{
// set push url for github projects
if (preg_match('{^(?:https?|git)://github.com/([^/]+)/([^/]+?)(?:\.git)?$}', $package->getSourceUrl(), $match)) {
$pushUrl = 'git@github.com:'.$match[1].'/'.$match[2].'.git';
$cmd = sprintf('git remote set-url --push origin %s', escapeshellarg($pushUrl));
$this->process->execute($cmd, $ignoredOutput, $path);
}
}
}