예제 #1
0
 /**
  * Util method to quickly setup a package using the source path built.
  *
  * @return \Composer\Package\Package
  */
 protected function setupPackage()
 {
     $package = new Package('archivertest/archivertest', 'master', 'master');
     $package->setSourceUrl(realpath($this->testDir));
     $package->setSourceReference('master');
     $package->setSourceType('git');
     return $package;
 }
 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();
 }