private static function createPackage($name, $url, $ref) { $package = new Package\Package($name, '1.0.0', 'v1.0.0'); $package->setDistUrl($url); $package->setDistReference($ref); return $package; }
/** * @param \Composer\Package\Package $package */ public function addDistToPackage(\Composer\Package\Package $package) { $this->initializeData(); $versionDigits = explode('.', $package->getPrettyVersion()); if (count($versionDigits) === 3) { $branchVersion = $versionDigits[0] . '.' . $versionDigits[1]; $patchlevelVersion = $versionDigits[0] . '.' . $versionDigits[1] . '.' . $versionDigits[2]; if (isset($this->data[$branchVersion]) && isset($this->data[$branchVersion]['releases'][$patchlevelVersion])) { $releaseData = $this->data[$branchVersion]['releases'][$patchlevelVersion]; if (isset($releaseData['checksums']['tar']['sha1']) && isset($releaseData['url']['tar'])) { $package->setDistType('tar'); $package->setDistReference($patchlevelVersion); $package->setDistUrl($releaseData['url']['tar']); $package->setDistSha1Checksum($releaseData['checksums']['tar']['sha1']); } } } }
public function build(Addon $addon) { $composer = $this->packagist->getComposer(); $downloader = $composer->getDownloadManager(); $packageVersions = $this->packagist->getPackageVersions($addon->Name); $time = time(); if (!$packageVersions) { throw new Exception('Could not find corresponding Packagist versions'); } // Get the latest local and packagist version pair. $version = $addon->Versions()->filter('Development', true)->first(); foreach ($packageVersions as $packageVersion) { if ($packageVersion->getVersionNormalized() != $version->Version) { continue; } $path = implode('/', array(TEMP_FOLDER, self::ADDONS_DIR, $addon->Name)); // Convert PackagistAPI result into class compatible with Composer logic $package = new Package($addon->Name, $packageVersion->getVersionNormalized(), $packageVersion->getVersion()); $package->setExtra($packageVersion->getExtra()); if ($source = $packageVersion->getSource()) { $package->setSourceUrl($source->getUrl()); $package->setSourceType($source->getType()); $package->setSourceReference($source->getReference()); } if ($dist = $packageVersion->getDist()) { $package->setDistUrl($dist->getUrl()); $package->setDistType($dist->getType()); $package->setDistReference($dist->getReference()); } $this->download($package, $path); $this->buildReadme($addon, $path); $this->buildScreenshots($addon, $package, $path); } $addon->LastBuilt = $time; $addon->write(); }