nlopess         Sun Dec 25 21:01:17 2005 EDT

  Added files:                 
    /phpdoc/scripts/iniupdate   cvs-versions.php 

  Modified files:              
    /phpdoc/scripts/iniupdate   generate_changelog.php insert_db.php 
                                make_db.php update-all update_db.php 
  Log:
  Christmas present to phpdoc team:
  update to PHP 6
  make the scripts easier to update for new major versions
  # now back to cakes :)
  # not tested yet.. I've to study for the exams first..
  
http://cvs.php.net/viewcvs.cgi/phpdoc/scripts/iniupdate/generate_changelog.php?r1=1.4&r2=1.5&diff_format=u
Index: phpdoc/scripts/iniupdate/generate_changelog.php
diff -u phpdoc/scripts/iniupdate/generate_changelog.php:1.4 
phpdoc/scripts/iniupdate/generate_changelog.php:1.5
--- phpdoc/scripts/iniupdate/generate_changelog.php:1.4 Wed Jul 20 18:45:50 2005
+++ phpdoc/scripts/iniupdate/generate_changelog.php     Sun Dec 25 21:01:16 2005
@@ -17,18 +17,16 @@
   +----------------------------------------------------------------------+
 */
 
-// replaces php5-cvs with the following version
-$cvs_version = '5.1.0';
-
+require_once './cvs-versions.php';
 
 /** converts a tag like php_5_0_0 into a version like 5.0.0 */
 function tag2version($tag) {
-    $version = strtr(substr($tag, 4), '_', '.');
+    global $cvs_versions;
 
-    if ($version == '5.cvs')
-        return $GLOBALS['cvs_version'];
+    if (isset($cvs_versions[$tag]))
+        return $cvs_versions[$tag];
 
-    return $version;
+    return strtr(substr($tag, 4), '_', '.');
 }
 
 
http://cvs.php.net/viewcvs.cgi/phpdoc/scripts/iniupdate/insert_db.php?r1=1.2&r2=1.3&diff_format=u
Index: phpdoc/scripts/iniupdate/insert_db.php
diff -u phpdoc/scripts/iniupdate/insert_db.php:1.2 
phpdoc/scripts/iniupdate/insert_db.php:1.3
--- phpdoc/scripts/iniupdate/insert_db.php:1.2  Tue Jun 28 16:59:35 2005
+++ phpdoc/scripts/iniupdate/insert_db.php      Sun Dec 25 21:01:16 2005
@@ -18,6 +18,7 @@
 */
 
 require './ini_search_lib.php';
+require_once './cvs-versions.php';
 
 function insert_in_db($tag) {
     global $array, $idx;
@@ -45,12 +46,6 @@
     die("Couldn't create the DB: $error");
 }
 
-if (!isset($tags)) {
-    $tags[] = 'php_4_cvs';
-    $tags[] = 'php_5_cvs';
-    $tags = array_merge($tags, array_map('rtrim', 
array_merge(file('version4.tags'), file('version5.tags'))));
-}
-
 foreach($tags as $tag) {
     $array = array();
     recurse("./sources/$tag");
http://cvs.php.net/viewcvs.cgi/phpdoc/scripts/iniupdate/make_db.php?r1=1.2&r2=1.3&diff_format=u
Index: phpdoc/scripts/iniupdate/make_db.php
diff -u phpdoc/scripts/iniupdate/make_db.php:1.2 
phpdoc/scripts/iniupdate/make_db.php:1.3
--- phpdoc/scripts/iniupdate/make_db.php:1.2    Tue Jun 28 16:59:35 2005
+++ phpdoc/scripts/iniupdate/make_db.php        Sun Dec 25 21:01:16 2005
@@ -17,6 +17,7 @@
   +----------------------------------------------------------------------+
 */
 
+require_once './cvs-versions.php';
 $db_open = isset($idx) ? true : false;
 
 if (!$db_open && !$idx = sqlite_open('ini_changelog.sqlite', 0666, $error)) {
@@ -26,10 +27,6 @@
 $sql = 'CREATE TABLE changelog (
 name TEXT PRIMARY KEY,';
 
-$tags[] = 'php_4_cvs';
-$tags[] = 'php_5_cvs';
-$tags = array_merge($tags, array_map('rtrim', 
array_merge(file('version4.tags'), file('version5.tags'))));
-
 foreach($tags as $tag) {
     $sql .= "$tag TEXT,";
 }
http://cvs.php.net/viewcvs.cgi/phpdoc/scripts/iniupdate/update-all?r1=1.1&r2=1.2&diff_format=u
Index: phpdoc/scripts/iniupdate/update-all
diff -u phpdoc/scripts/iniupdate/update-all:1.1 
phpdoc/scripts/iniupdate/update-all:1.2
--- phpdoc/scripts/iniupdate/update-all:1.1     Tue Feb 22 17:54:58 2005
+++ phpdoc/scripts/iniupdate/update-all Sun Dec 25 21:01:16 2005
@@ -1,5 +1,8 @@
 #!/bin/bash
 # taken from cvs.php.net/functable by Harmut
+PHP_4_CVS=PHP_4_4
+PHP_5_CVS=PHP_5_1
+PHP_6_CVS=HEAD
 
 
 if [ ! -d sources ] 
@@ -23,12 +26,7 @@
 
 # getting php4 latest developement snapshot
 echo updating php4 cvs
-if [ -d php_4_cvs ]
- then
-  (cd php_4_cvs; cvs update 2>&1 | grep -v "^. php_4_cvs" | grep -v Updating)
-else
-  cvs -d ":pserver:[EMAIL PROTECTED]:/repository" get -d php_4_cvs -r PHP_4_3 
php-src
-fi
+cvs -q -d ":pserver:[EMAIL PROTECTED]:/repository" co -d php_4_cvs -r 
$PHP_4_CVS php-src
 
 
 # getting php5 releases
@@ -45,9 +43,8 @@
 
 # getting php5 latest developement snapshot
 echo updating php5 cvs
-if [ -d php_5_cvs ]
- then
-  (cd php_5_cvs; cvs update 2>&1 | grep -v "^. php_5_cvs" | grep -v Updating)
-else
-  cvs -d ":pserver:[EMAIL PROTECTED]:/repository" get -d php_5_cvs -r HEAD 
php-src
-fi
+cvs -q -d ":pserver:[EMAIL PROTECTED]:/repository" co -d php_5_cvs -r 
$PHP_5_CVS php-src
+
+# getting php6 latest developement snapshot
+echo updating php6 cvs
+cvs -q -d ":pserver:[EMAIL PROTECTED]:/repository" co -d php_6_cvs -r 
$PHP_6_CVS php-src
http://cvs.php.net/viewcvs.cgi/phpdoc/scripts/iniupdate/update_db.php?r1=1.2&r2=1.3&diff_format=u
Index: phpdoc/scripts/iniupdate/update_db.php
diff -u phpdoc/scripts/iniupdate/update_db.php:1.2 
phpdoc/scripts/iniupdate/update_db.php:1.3
--- phpdoc/scripts/iniupdate/update_db.php:1.2  Tue Jun 28 16:59:35 2005
+++ phpdoc/scripts/iniupdate/update_db.php      Sun Dec 25 21:01:16 2005
@@ -17,6 +17,8 @@
   +----------------------------------------------------------------------+
 */
 
+require_once './cvs-versions.php';
+
 copy('ini_changelog.sqlite', 'backup.sqlite');
 
 if (!$idx = sqlite_open('ini_changelog.sqlite', 0666, $error)) {
@@ -40,8 +42,9 @@
 
 sqlite_query($idx, $sql);
 
+// check which versions need to be updated
 $tmp = $tags;
-$tags = array('php_4_cvs', 'php_5_cvs');
+$tags = array_keys($cvs_versions); //always update cvs versions
 
 foreach($tmp as $tag) {
     if (!isset($columns[$tag])) {
@@ -49,7 +52,7 @@
     }
 }
 
-unset($tmp, $columns, $sql);
+unset($tmp, $columns, $sql, $olddata);
 
 // finally recurse through the new PHP versions
 include './insert_db.php';

http://cvs.php.net/viewcvs.cgi/phpdoc/scripts/iniupdate/cvs-versions.php?view=markup&rev=1.1
Index: phpdoc/scripts/iniupdate/cvs-versions.php
+++ phpdoc/scripts/iniupdate/cvs-versions.php
<?php
/*
  +----------------------------------------------------------------------+
  | ini doc settings updater                                             |
  +----------------------------------------------------------------------+
  | Copyright (c) 1997-2005 The PHP Group                                |
  +----------------------------------------------------------------------+
  | This source file is subject to version 3.0 of the PHP license,       |
  | that is bundled with this package in the file LICENSE, and is        |
  | available through the world-wide-web at the following url:           |
  | http://www.php.net/license/3_0.txt.                                  |
  | If you did not receive a copy of the PHP license and are unable to   |
  | obtain it through the world-wide-web, please send a note to          |
  | [EMAIL PROTECTED] so we can mail you a copy immediately.               |
  +----------------------------------------------------------------------+
  | Authors:    Nuno Lopes <[EMAIL PROTECTED]>                             |
  +----------------------------------------------------------------------+
*/

// fetch all version tags
$tags = array();
foreach (glob('*.tags') as $file) {
    $tmp  = array_map('rtrim', file($file));
    $last_versions[] = substr(end($tmp), 4); // this is the last released 
version from a major version
    $tags = array_merge($tags, $tmp);
}


// fetch cvs versions
$file = file_get_contents('./update-all');
preg_match_all('/PHP_(\d)_CVS=(\w+)/', $file, $data, PREG_SET_ORDER);

$cvs_versions = array();
foreach ($data as $v) {
        if ($v[2] == 'HEAD') {
                $version = "PHP $v[1].0.0";
        } else {
                $version = 'PHP ' . make_cvs_version(substr($v[2], 4));
        }
        $cvs_versions["php_$v[1]_cvs"] = $version;
}

$tags = array_merge(array_keys($cvs_versions), $tags);

// the file was called directly: DEBUG mode
if (basename(__FILE__) == $_SERVER['PHP_SELF']) {
    print_r($cvs_versions);
    print_r($last_versions);
    print_r($tags);
}


// guess the cvs version number by checking last released versions
function make_cvs_version($tag) {
    global $last_versions;

    foreach ($last_versions as $ver) {
        if (strpos($ver, $tag) === 0) { //found it
            $parts = explode('_', $ver);
            ++$parts[2]; //increment minor version (5.5.1 -> 5.5.2)
            return implode('.', $parts);
        }
    }

    die("ERROR: couldn't map $tag to a specific version!\n");
}

unset($file, $data, $last_versions);
?>

Reply via email to