12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- <?php
- namespace Composer\Downloader;
- use Composer\Package\PackageInterface;
- use Composer\Repository\VcsRepository;
- use Composer\Util\Perforce;
- class PerforceDownloader extends VcsDownloader
- {
- protected $perforce;
-
- public function doDownload(PackageInterface $package, $path)
- {
- $ref = $package->getSourceReference();
- $label = $package->getPrettyVersion();
- $this->io->write(' Cloning ' . $ref);
- $this->initPerforce($package, $path);
- $this->perforce->setStream($ref);
- $this->perforce->p4Login($this->io);
- $this->perforce->writeP4ClientSpec();
- $this->perforce->connectClient();
- $this->perforce->syncCodeBase($label);
- $this->perforce->cleanupClientSpec();
- }
- public function initPerforce($package, $path)
- {
- if (!empty($this->perforce)) {
- $this->perforce->initializePath($path);
- return;
- }
- $repository = $package->getRepository();
- $repoConfig = null;
- if ($repository instanceof VcsRepository) {
- $repoConfig = $this->getRepoConfig($repository);
- }
- $this->perforce = Perforce::create($repoConfig, $package->getSourceUrl(), $path, $this->process, $this->io);
- }
- private function getRepoConfig(VcsRepository $repository)
- {
- return $repository->getRepoConfig();
- }
-
- public function doUpdate(PackageInterface $initial, PackageInterface $target, $path)
- {
- $this->doDownload($target, $path);
- }
-
- public function getLocalChanges(PackageInterface $package, $path)
- {
- $this->io->write('Perforce driver does not check for local changes before overriding', true);
- return;
- }
-
- protected function getCommitLogs($fromReference, $toReference, $path)
- {
- $commitLogs = $this->perforce->getCommitLogs($fromReference, $toReference);
- return $commitLogs;
- }
- public function setPerforce($perforce)
- {
- $this->perforce = $perforce;
- }
- }
|