1
0
Fork 0

Fix git downloader

pull/20/merge
Jordi Boggiano 2011-09-25 12:39:08 +02:00
parent 7cf86e7ea0
commit c7af918caa
1 changed files with 24 additions and 10 deletions

View File

@ -19,19 +19,33 @@ use Composer\Package\PackageInterface;
*/
class GitDownloader implements DownloaderInterface
{
protected $clone;
public function __construct($clone = true)
/**
* {@inheritDoc}
*/
public function download(PackageInterface $package, $path, $url, $checksum = null, $useSource = false)
{
$this->clone = $clone;
system('git clone '.escapeshellarg($url).' -b master '.escapeshellarg($path));
// TODO non-source installs:
// system('git archive --format=tar --prefix='.escapeshellarg($package->getName()).' --remote='.escapeshellarg($url).' master | tar -xf -');
}
public function download(PackageInterface $package, $path, $url, $checksum = null)
/**
* {@inheritDoc}
*/
public function update(PackageInterface $initial, PackageInterface $target, $path, $useSource = false)
{
if ($this->clone) {
system('git clone '.escapeshellarg($url).' -b master '.escapeshellarg($path.'/'.$package->getName()));
} else {
system('git archive --format=tar --prefix='.escapeshellarg($package->getName()).' --remote='.escapeshellarg($url).' master | tar -xf -');
}
$cwd = getcwd();
chdir($path);
system('git pull');
chdir($cwd);
}
/**
* {@inheritDoc}
*/
public function remove(PackageInterface $package, $path, $useSource = false)
{
echo 'rm -rf '.$path; // TODO
}
}