X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Fpharext%2FPackager.php;h=81bac81d13335cae823b9feb2a541f843a76e118;hb=9ba4071c9da157169bd4febd4025f60b9221ac78;hp=9acb5ebc848a229c62a7d0e7c74eec63bcbf13cc;hpb=8bb44cb1907aff0691bf0b40443ef81d2251c29f;p=pharext%2Fpharext diff --git a/src/pharext/Packager.php b/src/pharext/Packager.php index 9acb5eb..81bac81 100644 --- a/src/pharext/Packager.php +++ b/src/pharext/Packager.php @@ -141,8 +141,6 @@ class Packager implements Command * @return string local source */ private function download($source) { - $this->info("Fetching remote source %s ...\n", $source); - if ($this->args->git) { $task = new Task\GitClone($source); } else { @@ -167,10 +165,15 @@ class Packager implements Command * @return string extracted directory */ private function extract($source) { - $this->debug("Extracting %s ...\n", $source); - - $task = new Task\Extract($source); - $dest = $task->run($this->verbosity()); + try { + $task = new Task\Extract($source); + $dest = $task->run($this->verbosity()); + } catch (\Exception $e) { + if (false === strpos($e->getMessage(), "checksum mismatch")) { + throw $e; + } + $dest = (new Task\PaxFixup($source))->run($this->verbosity()); + } $this->cleanup[] = new Task\Cleanup($dest); return $dest; @@ -191,8 +194,7 @@ class Packager implements Command $source = $this->extract($source); $this->cleanup[] = new Task\Cleanup($source); - if ($this->args->pecl) { - $this->debug("Sanitizing PECL dir ...\n"); + if (!$this->args->git) { $source = (new Task\PeclFixup($source))->run($this->verbosity()); } } @@ -211,8 +213,10 @@ class Packager implements Command $this->source = new SourceDir\Pecl($source); } elseif ($this->args["git"]) { $this->source = new SourceDir\Git($source); - } elseif (is_file("$source/parext_package.php")) { + } elseif (is_file("$source/pharext_package.php")) { $this->source = include "$source/pharext_package.php"; + } else { + $this->source = new SourceDir\Basic($source); } if (!$this->source instanceof SourceDir) {