X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Fpharext%2FSourceDir%2FPecl.php;h=9ca97264c480923817c1b5e1f808954888c8cf33;hb=34284101c2aa60ec1e824a54de543148aaa28b58;hp=a9150ced7b0904adfc0fa27fe21186c1c75cd91e;hpb=26683702fdc53d2431ae2bc5081439ac12685d1b;p=pharext%2Fpharext diff --git a/src/pharext/SourceDir/Pecl.php b/src/pharext/SourceDir/Pecl.php index a9150ce..9ca9726 100644 --- a/src/pharext/SourceDir/Pecl.php +++ b/src/pharext/SourceDir/Pecl.php @@ -3,6 +3,7 @@ namespace pharext\SourceDir; use pharext\Command; +use pharext\Exception; use pharext\SourceDir; /** @@ -33,24 +34,34 @@ class Pecl implements \IteratorAggregate, SourceDir * @see \pharext\SourceDir::__construct() */ public function __construct(Command $cmd, $path) { - if (!realpath("$path/package.xml")) { - throw new \Exception("Missing package.xml in $path"); + if (realpath("$path/package2.xml")) { + $sxe = simplexml_load_file("$path/package2.xml"); + } elseif (realpath("$path/package.xml")) { + $sxe = simplexml_load_file("$path/package.xml"); + } else { + throw new Exception("Missing package.xml in $path"); } - $sxe = simplexml_load_file("$path/package.xml"); $sxe->registerXPathNamespace("pecl", $sxe->getDocNamespaces()[""]); $args = $cmd->getArgs(); if (!isset($args->name)) { $name = (string) $sxe->xpath("/pecl:package/pecl:name")[0]; foreach ($args->parse(2, ["--name", $name]) as $error) { - $cmd->error("%s\n", $error); + $cmd->warn("%s\n", $error); } } if (!isset($args->release)) { $release = (string) $sxe->xpath("/pecl:package/pecl:version/pecl:release")[0]; foreach ($args->parse(2, ["--release", $release]) as $error) { - $cmd->error("%s\n", $error); + $cmd->warn("%s\n", $error); + } + } + if (!isset($args->zend)) { + if ($sxe->xpath("/pecl:package/pecl:zendextsrcrelease")) { + foreach ($args->parse(1, ["--zend"]) as $error) { + $cmd->warn("%s\n", $error); + } } } @@ -86,7 +97,8 @@ class Pecl implements \IteratorAggregate, SourceDir * @return string */ private static function loadHook($configure, $dependencies) { - return include __DIR__."/../pharext_install.tpl.php"; + require_once "pharext/Version.php"; + return include __DIR__."/../../pharext_install.tpl.php"; } /** @@ -103,7 +115,7 @@ class Pecl implements \IteratorAggregate, SourceDir substr($b, strpos(".ext.phar", $b)) ); }); - yield realpath($this->path."/".end($glob)); + yield end($glob); } else { unset($dependencies[$key]); } @@ -129,17 +141,17 @@ class Pecl implements \IteratorAggregate, SourceDir private function generateFiles() { foreach ($this->generateHooks() as $file => $hook) { if ($this->cmd->getArgs()->verbose) { - $this->cmd->info("Packaging %s\n", is_string($hook) ? $hook : $file); + $this->cmd->info("Packaging %s\n", is_scalar($hook) ? $hook : $file); } yield $file => $hook; } foreach ($this->sxe->xpath("//pecl:file") as $file) { $path = $this->path ."/". $this->dirOf($file) ."/". $file["name"]; if ($this->cmd->getArgs()->verbose) { - $this->cmd->info("Packaging %s\n", $path); + $this->cmd->info("Packaging %s\n", substr($path, strlen($this->path))); } if (!($realpath = realpath($path))) { - $this->cmd->error("File %s does not exist", $path); + $this->cmd->warn("File %s does not exist", $path); } yield $realpath; }