Exemplo n.º 1
0
 public function testZipReturnsAZipFileLocation()
 {
     $file1 = ['name' => 'foobar', 'content' => 'file1 content'];
     $file2 = ['name' => 'fizzbuzz', 'content' => 'file2 content'];
     $file3 = ['name' => 'bizzbang', 'content' => 'file3 content'];
     $this->archive->expects($this->exactly(3))->method('file_put_contents');
     $this->archive->expects($this->once())->method('exec');
     $targetDir = '/tmp/foobar';
     $baseDir = 'foobar';
     $this->setAttribute($this->archive, 'targetDir', $targetDir);
     $exec = sprintf('cd "%s" && cd .. && zip -r "%s" "%s" -x */.git[!a]\\*', $targetDir, $targetDir . '.zip', $baseDir);
     $this->archive->expects($this->once())->method('exec')->with($exec);
     $this->archive->queueToFile($file1['name'], $file1['content']);
     $this->archive->queueToFile($file2['name'], $file2['content']);
     $this->archive->queueToFile($file3['name'], $file3['content']);
     $this->archive->write();
     $returned = $this->archive->zip();
     $this->assertEquals($targetDir . '.zip', $returned);
 }
Exemplo n.º 2
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();
 }
Exemplo n.º 3
0
 /**
  * @return string
  */
 public function getPuppetModules()
 {
     $this->archive = new Extension\Archive('puphpet/puppet/modules');
     $this->archive->write();
     return $this->archive->zip();
 }