com web/rmtools: further preparations for pickle build: client/include/Pickle.php client/include/PickleBranch.php client/include/PickleBuildVC.php
client/script/packagist.php
| From: | Anatol Belski | Date: | Wed, 22 Apr 2015 13:19:29 +0000 |
| Subject: | com web/rmtools: further preparations for pickle build: client/include/Pickle.php client/include/PickleBranch.php client/include/PickleBuildVC.php client/script/packagist.php |
||
| Groups: | php.webmaster | ||
| Request: | Send a blank email to php-webmaster+get-26022@lists.php.net to get a copy of this message | ||
Commit: ad2982f3afe7ec5c66cac4590458f286671b6375
Author: Anatol Belski <ab@php.net> Wed, 22 Apr 2015 15:19:29 +0200
Parents: d8bdbc6118ea52535615d97651be9f0e9832fa03
Branches: master pecl_legacy
Link: http://git.php.net/?p=web/rmtools.git;a=commitdiff;h=ad2982f3afe7ec5c66cac4590458f286671b6375
Log:
further preparations for pickle build
Changed paths:
M client/include/Pickle.php
A client/include/PickleBranch.php
A client/include/PickleBuildVC.php
M client/script/packagist.php
Diff:
diff --git a/client/include/Pickle.php b/client/include/Pickle.php
index f06b924..96eee7d 100644
--- a/client/include/Pickle.php
+++ b/client/include/Pickle.php
@@ -2,8 +2,6 @@
namespace rmtools;
-include __DIR__ . '/BranchConfig.php';
-
class Pickle
{
diff --git a/client/include/PickleBranch..php b/client/include/PickleBranch.php
new file mode 100644
index 0000000..19bf506
--- /dev/null
+++ b/client/include/PickleBranch.php
@@ -0,0 +1,113 @@
+<?php
+namespace rmtools;
+
+include __DIR__ . '/PickleBuildVC.php';
+
+/* Primitive branch which maps to some unversioned local source tree. It'll not care about any
revisions, etc. */
+class PickleBranch {
+ public $config;
+ public $builds;
+
+ public function __construct($config_path)
+ {
+ if (!is_readable($config_path)) {
+ throw new \Exception('Cannot open config data <' . $config_path .
'>');
+ }
+ $this->config = new BranchConfig($config_path);
+ $this->addBuildList();
+ }
+
+ private function addBuildList()
+ {
+ $builds = $this->config->getBuildList();
+
+ if (!empty($builds)) {
+ $this->builds = array();
+ foreach ($builds as $n => $v) {
+ $this->builds[] = $n;
+ }
+ } else {
+ $this->builds = NULL;
+ }
+ }
+
+ public function update()
+ {
+ // pass
+ }
+
+ public function hasNewRevision()
+ {
+ return false;
+ }
+
+ public function export($revision = false, $build_type = false, $zip = false, $is_zip = false)
+ {
+ // TODO
+ }
+
+ public function createSourceSnap($build_type = false, $revision = false)
+ {
+ return $this->export($revision, $build_type, true);
+ }
+
+ public function setLastRevisionExported($last_rev)
+ {
+ // pass
+ }
+
+ public function getLastRevisionExported()
+ {
+ return NULL;
+ }
+
+ public function getLastRevisionId()
+ {
+ return NULL;
+ }
+
+ public function getPreviousRevision()
+ {
+ return NULL;
+ }
+
+ function getBuildList($platform)
+ {
+ $builds = array();
+ foreach ($this->builds as $build_name) {
+ $build = $this->config->getBuildFromName($build_name);
+ if (isset($build['platform']) && $build['platform'] == $platform) {
+ $builds[] = $build_name;
+ }
+ }
+ return $builds;
+ }
+
+ function createBuildInstance($build_name)
+ {
+ $build = NULL;
+ $build_config = $this->config->getBuildFromName($build_name);
+
+ if (!$build_config) {
+ throw new \Exception("Invalid build name <$build_name>");
+ }
+
+ $compiler = strtolower($build_config['compiler']);
+ switch ($compiler) {
+ case 'vc14':
+ case 'vc12':
+ case 'vc11':
+ case 'vc9':
+ case 'vc6':
+ $build = new PickleBuildVC($this, $build_name);
+ break;
+ case 'icc':
+ case 'gcc':
+ case 'clang':
+ throw new \Exception("$compiler not supported yet. Not implemented");
+ break;
+ }
+
+ return $build;
+ }
+}
diff --git a/client/include/PickleBuildVC.php b/client/include/PickleBuildVC.php
new file mode 100644
index 0000000..f55b771
--- /dev/null
+++ b/client/include/PickleBuildVC.php
@@ -0,0 +1,39 @@
+<?php
+
+namespace rmtools;
+
+include __DIR__ . '/BranchConfig.php';
+include __DIR__ . '/MakeLogParserVC.php';
+
+class PickleBuildVC
+{
+
+ public function __construct(PickleBranch $branch, $build_name)
+ {
+ }
+
+
+ public function phpize()
+ {
+
+
+ }
+
+ public function configure()
+ {
+
+ }
+
+ public function make()
+ {
+
+ }
+
+ public function archive()
+ {
+
+ }
+
+
+}
+
diff --git a/client/script/packagist.php b/client/script/packagist.php
index 6c9b5f4..e6706c5 100644
--- a/client/script/packagist.php
+++ b/client/script/packagist.php
@@ -1,6 +1,7 @@
<?php
include __DIR__ . '/../data/config.php';
+include __DIR__ . '/../include/PickleBranch.php';
include __DIR__ . '/../include/Pickle.php';
include __DIR__ . '/../include/Tools.php';
//include __DIR__ . '/../include/PackagistExt.php';
@@ -9,12 +10,35 @@ use rmtools as rm;
/* parametrize */
-$branch_name = "packagist55";
+$branch_name = "packagist70";
$config_path = __DIR__ . '/../data/config/packagist/' . $branch_name . '.ini';
+$branch = new rm\PickleBranch($config_path);
+
+$branch_name = $branch->config->getName();
+$builds = $branch->getBuildList('windows');
+
$pickle = new rm\Pickle();
-var_dump($pickle);
+
+
+
+//var_dump($pickle);
+//var_dump($branch_name);
+//var_dump($builds);
+
+foreach ($builds as $build_name) {
+
+ echo "Starting build" . PHP_EOL;
+
+ //$build_config = $branch->config->getBuildFromName($build_name);
+
+ $build = $branch->createBuildInstance($build_name);
+
+ var_dump($build_name);
+ var_dump($build);
+ //var_dump($build_config);
+}
exit(0);