Exemplo n.º 1
0
 /**
  * @param array $request
  * @return string
  */
 public function createArchive(array $request)
 {
     $submittedExtensions = $this->matchExtensionToArrayValues($request);
     $this->archive = new Extension\Archive();
     $extensions = [];
     $sources = [];
     $mergedData = [];
     foreach ($submittedExtensions as $slug => $data) {
         $extension = $this->getExtensionBySlug($slug);
         $extension->setCustomData($data);
         $extensions[$slug] = $extension;
         $extension->setReturnAvailableData(false);
         $this->archive->queueToFile($extension->getTargetFile(), $extension->renderManifest($extension->getData()));
         foreach ($extension->getSources() as $name => $source) {
             $sources[$name] = $source;
         }
         $mergedData[$slug] = $extension->getData(false);
     }
     $this->processExtensionSources($sources);
     $this->archive->queueToFile('puphpet/config.yaml', Yaml::dump($mergedData, 50));
     $this->archive->addFolder(__DIR__ . '/../../../../modules', 'puphpet/puppet/modules');
     $this->archive->write();
     return $this->archive->zip();
 }