com web/rmtools: more for PickleExt: client/include/PickleExt.php client/script/pickle.php
| From: | Anatol Belski | Date: | Tue, 05 May 2015 20:33:39 +0000 |
| Subject: | com web/rmtools: more for PickleExt: client/include/PickleExt.php client/script/pickle.php | ||
| Groups: | php.webmaster | ||
| Request: | Send a blank email to php-webmaster+get-26001@lists.php.net to get a copy of this message | ||
Commit: d08783a49b58328c466647d58ce41ce6e198f675
Author: Anatol Belski <ab@php.net> Tue, 5 May 2015 22:33:39 +0200
Parents: a86febd3ce1b8f074ea44270529d59ce14ab0d4a
Branches: master pecl_legacy
Link: http://git.php.net/?p=web/rmtools.git;a=commitdiff;h=d08783a49b58328c466647d58ce41ce6e198f675
Log:
more for PickleExt
Changed paths:
M client/include/PickleExt.php
M client/script/pickle.php
Diff:
diff --git a/client/include/PickleExt.php b/client/include/PickleExt.php
index d87d67e..ef5468d 100644
--- a/client/include/PickleExt.php
+++ b/client/include/PickleExt.php
@@ -12,6 +12,7 @@ class PickleExt
protected $unzip_cmd = 'c:\php-sdk\bin\unzip.exe';
protected $deplister_cmd = 'c:\apps\bin\deplister.exe';
protected $build;
+ protected $pkg_config;
protected $pickle_cmd;
@@ -45,12 +46,17 @@ class PickleExt
$this->version = $m[1];
}
- public function preparePackage()
+ public function getName()
{
+ return $this->name;
+ }
+ public function getVersion()
+ {
+ return $this->version;
}
- public function packLogs()
+ public function preparePackage()
{
}
@@ -80,6 +86,90 @@ class PickleExt
{
// pass
}
+
+ protected function complexPkgNameMatch($cnf_name) {
+ $full_set = array(
+ $this->build->branch->config->getBranch(),
+ ($this->build->thread_safe ? 'ts' : 'nts'),
+ $this->build->compiler,
+ $this->build->architecture,
+ );
+
+if (!function_exists('rmtools\combinations')) {
+ function combinations($arr, $level, &$result, $that, $curr=array()) {
+ for($i = 0; $i < count($arr); $i++) {
+ $new = array_merge($curr, array($arr[$i]));
+ if($level == 1) {
+ /* preserve order */
+ sort($new);
+ /* no repititions */
+ $new = array_unique($new);
+ $name = $that->getName() . '-' . implode('-', $new);
+ if (!in_array($name, $result)) {
+ $result[] = $name;
+ }
+ } else {
+ combinations($arr, $level - 1, $result, $that, $new);
+ }
+ }
+ }
+}
+
+ $names = array();
+ for ($i = 0; $i<count($full_set); $i++) {
+ combinations($full_set, $i+1, $names, $this);
+ }
+
+ foreach ($names as $name) {
+ if ($name === $cnf_name) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ public function getPackageConfig()
+ {
+ $config = NULL;
+
+ if ($this->pkg_config) {
+ return $this->pkg_config;
+ }
+
+ $known_path = __DIR__ . '/../data/config/pickle/exts.ini';
+ $exts = parse_ini_file($known_path, true, INI_SCANNER_RAW);
+
+ /* Check for like myext-5.3-ts-vc9-x86 */
+ foreach ($exts as $name => $conf) {
+ if ($this->complexPkgNameMatch($name)) {
+ $config = $conf;
+ break;
+ }
+ }
+
+ /* XXX this here might be redundant */
+ if (!$config) {
+ foreach ($exts as $name => $conf) {
+ if ($name === $this->name) {
+ $config = $conf;
+ break;
+ }
+ }
+ }
+
+ $this->pkg_config = $config;
+
+ return $config;
+ }
+
+ /* ignore me */
+ public function sendToCoventry()
+ {
+ $config = $this->getPackageConfig();
+
+ return $config && isset($config['ignore']);
+ }
}
diff --git a/client/script/pickle.php b/client/script/pickle.php
index 16f5547..cf31435 100644
--- a/client/script/pickle.php
+++ b/client/script/pickle.php
@@ -65,7 +65,16 @@ foreach ($builds as $build_name) {
continue;
}
- $ext->init();
+ try {
+ $ext->init();
+ var_dump($ext->getPackageConfig());
+ } catch (Exception $e) {
+ echo 'Error: ' . $e->getMessage() . PHP_EOL;
+
+ /* send error mail*/
+
+ continue;
+ }
echo "Running pickle build" . PHP_EOL;