Merged zip & tar archivers
parent
b21bb1dcc5
commit
a733d76b33
|
@ -19,14 +19,20 @@ use Composer\Package\PackageInterface;
|
||||||
* @author Till Klampaeckel <till@php.net>
|
* @author Till Klampaeckel <till@php.net>
|
||||||
* @author Matthieu Moquet <matthieu@moquet.net>
|
* @author Matthieu Moquet <matthieu@moquet.net>
|
||||||
*/
|
*/
|
||||||
class TarArchiver extends BaseArchiver
|
class PharArchiver extends BaseArchiver
|
||||||
{
|
{
|
||||||
|
static public $formats = array(
|
||||||
|
'zip' => \Phar::ZIP,
|
||||||
|
'tar' => \Phar::TAR,
|
||||||
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function archive($sources, $target, $format, $sourceRef = null)
|
public function archive($sources, $target, $format, $sourceRef = null)
|
||||||
{
|
{
|
||||||
$this->createPharArchive($sources, $target, \Phar::TAR);
|
// source reference is useless for this archiver
|
||||||
|
$this->createPharArchive($sources, $target, static::$formats[$format]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -34,6 +40,6 @@ class TarArchiver extends BaseArchiver
|
||||||
*/
|
*/
|
||||||
public function supports($format, $sourceType)
|
public function supports($format, $sourceType)
|
||||||
{
|
{
|
||||||
return 'tar' === $format;
|
return in_array($format, array_keys(static::$formats));
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,39 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This file is part of Composer.
|
|
||||||
*
|
|
||||||
* (c) Nils Adermann <naderman@naderman.de>
|
|
||||||
* Jordi Boggiano <j.boggiano@seld.be>
|
|
||||||
*
|
|
||||||
* For the full copyright and license information, please view the LICENSE
|
|
||||||
* file that was distributed with this source code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Composer\Package\Archiver;
|
|
||||||
|
|
||||||
use Composer\Package\BasePackage;
|
|
||||||
use Composer\Package\PackageInterface;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Till Klampaeckel <till@php.net>
|
|
||||||
* @author Matthieu Moquet <matthieu@moquet.net>
|
|
||||||
*/
|
|
||||||
class ZipArchiver extends BaseArchiver
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function archive($sources, $target, $format, $sourceRef = null)
|
|
||||||
{
|
|
||||||
$this->createPharArchive($sources, $target, \Phar::ZIP);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function supports($format, $sourceType)
|
|
||||||
{
|
|
||||||
return 'zip' === $format;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -35,8 +35,7 @@ class ArchiveManagerTest extends ArchiverTest
|
||||||
$this->manager = new ArchiveManager($this->workDir);
|
$this->manager = new ArchiveManager($this->workDir);
|
||||||
$this->manager->addArchiver(new Archiver\GitArchiver);
|
$this->manager->addArchiver(new Archiver\GitArchiver);
|
||||||
$this->manager->addArchiver(new Archiver\MercurialArchiver);
|
$this->manager->addArchiver(new Archiver\MercurialArchiver);
|
||||||
$this->manager->addArchiver(new Archiver\TarArchiver);
|
$this->manager->addArchiver(new Archiver\PharArchiver);
|
||||||
$this->manager->addArchiver(new Archiver\ZipArchiver);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testUnknownFormat()
|
public function testUnknownFormat()
|
||||||
|
|
|
@ -12,15 +12,15 @@
|
||||||
|
|
||||||
namespace Composer\Test\Package\Archiver;
|
namespace Composer\Test\Package\Archiver;
|
||||||
|
|
||||||
use Composer\Package\Archiver\TarArchiver;
|
use Composer\Package\Archiver\PharArchiver;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Till Klampaeckel <till@php.net>
|
* @author Till Klampaeckel <till@php.net>
|
||||||
* @author Matthieu Moquet <matthieu@moquet.net>
|
* @author Matthieu Moquet <matthieu@moquet.net>
|
||||||
*/
|
*/
|
||||||
class TarArchiverTest extends ArchiverTest
|
class PharArchiverTest extends ArchiverTest
|
||||||
{
|
{
|
||||||
public function testArchive()
|
public function testTarArchive()
|
||||||
{
|
{
|
||||||
$this->setupGitRepo();
|
$this->setupGitRepo();
|
||||||
|
|
||||||
|
@ -28,11 +28,27 @@ class TarArchiverTest extends ArchiverTest
|
||||||
$target = sys_get_temp_dir().'/composer_archiver_test.tar';
|
$target = sys_get_temp_dir().'/composer_archiver_test.tar';
|
||||||
|
|
||||||
// Test archive
|
// Test archive
|
||||||
$archiver = new TarArchiver();
|
$archiver = new PharArchiver();
|
||||||
$archiver->archive($package->getSourceUrl(), $target, 'tar');
|
$archiver->archive($package->getSourceUrl(), $target, 'tar');
|
||||||
$this->assertFileExists($target);
|
$this->assertFileExists($target);
|
||||||
|
|
||||||
unlink($target);
|
unlink($target);
|
||||||
$this->removeGitRepo();
|
$this->removeGitRepo();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testZipArchive()
|
||||||
|
{
|
||||||
|
$this->setupGitRepo();
|
||||||
|
|
||||||
|
$package = $this->setupPackage();
|
||||||
|
$target = sys_get_temp_dir().'/composer_archiver_test.zip';
|
||||||
|
|
||||||
|
// Test archive
|
||||||
|
$archiver = new PharArchiver();
|
||||||
|
$archiver->archive($package->getSourceUrl(), $target, 'zip');
|
||||||
|
$this->assertFileExists($target);
|
||||||
|
|
||||||
|
unlink($target);
|
||||||
|
$this->removeGitRepo();
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -1,38 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This file is part of Composer.
|
|
||||||
*
|
|
||||||
* (c) Nils Adermann <naderman@naderman.de>
|
|
||||||
* Jordi Boggiano <j.boggiano@seld.be>
|
|
||||||
*
|
|
||||||
* For the full copyright and license information, please view the LICENSE
|
|
||||||
* file that was distributed with this source code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Composer\Test\Package\Archiver;
|
|
||||||
|
|
||||||
use Composer\Package\Archiver\ZipArchiver;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Till Klampaeckel <till@php.net>
|
|
||||||
* @author Matthieu Moquet <matthieu@moquet.net>
|
|
||||||
*/
|
|
||||||
class ZipArchiverTest extends ArchiverTest
|
|
||||||
{
|
|
||||||
public function testArchive()
|
|
||||||
{
|
|
||||||
$this->setupGitRepo();
|
|
||||||
|
|
||||||
$package = $this->setupPackage();
|
|
||||||
$target = sys_get_temp_dir().'/composer_archiver_test.zip';
|
|
||||||
|
|
||||||
// Test archive
|
|
||||||
$archiver = new ZipArchiver();
|
|
||||||
$archiver->archive($package->getSourceUrl(), $target, 'zip');
|
|
||||||
$this->assertFileExists($target);
|
|
||||||
|
|
||||||
unlink($target);
|
|
||||||
$this->removeGitRepo();
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue