jmcastagnetto Wed Jun 11 04:06:43 2003 EDT
Modified files:
/phpdoc/scripts genPHP_INI_ENTRY.php
Log:
Some rearrangement of the code, and minor modifications. Still had not
implemented the appropriate generation of the file w/o clobbering.
TODO: include Philip's table
Index: phpdoc/scripts/genPHP_INI_ENTRY.php
diff -u phpdoc/scripts/genPHP_INI_ENTRY.php:1.8 phpdoc/scripts/genPHP_INI_ENTRY.php:1.9
--- phpdoc/scripts/genPHP_INI_ENTRY.php:1.8 Mon May 12 22:21:12 2003
+++ phpdoc/scripts/genPHP_INI_ENTRY.php Wed Jun 11 04:06:43 2003
@@ -4,59 +4,24 @@
* generate a list of PHP config options and where they
* can be set.
* Author: Jesus M. Castagnetto
- * $Id: genPHP_INI_ENTRY.php,v 1.8 2003/05/13 02:21:12 philip Exp $
+ * $Id: genPHP_INI_ENTRY.php,v 1.9 2003/06/11 08:06:43 jmcastagnetto Exp $
*/
-$phpsrc_dir = '';
-// use command line parameter is available
-if ($argc == 2 && $argv[1] != '') {
- if (@is_dir($argv[1])) {
- $phpsrc_dir = realpath($argv[1]);
- } else {
- die ("Invalid phpsrc_dir, {$argv[1]} is not a directory\n");
- }
-}
-// figure out the php4 source dir
-if ($phpsrc_dir == '') {
- if (file_exists('../php4')) {
- $phpsrc_dir = realpath('../php4');
- } else if (file_exists('../../php4')) {
- $phpsrc_dir = realpath('../../php4');
- } else {
- die ("Cannot find PHP4 dir, set phpsrc_dir to the full path\n");
- }
-}
-
-// figure out the phpdoc dir
-$phpdoc_dir = '';
-if ($phpdoc_dir == '') {
- $current = getcwd();
- if (preg_match('/\/phpdoc$/', $current)) {
- $phpdoc_dir = $current;
- } else {
- $tmp = str_replace(strrchr($current,'/'),'',$current);
- if (preg_match('/\/phpdoc$/', $tmp)) {
- $phpdoc_dir = $tmp;
- } else {
- die ("Cannot find PHPDOC dir, set phpdoc_dir to the full path\n");
- }
- }
-}
-
-$master_ini_table = '';
-
-echo "Using:\nPHP4 SRC DIR: $phpsrc_dir\nPHPDOC DIR: $phpdoc_dir\n\n";
+// Global vars for generating the ini.xml
+/*{{{ $inixml_header */
$inixml_header = <<<INIXML_HEADER
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Automatically generated using gen_PHP_INI_ENTRY.php -->
<!-- DO NOT EDIT. -->
-<!-- \$Revision: 1.8 $ -->
+<!-- \$Revision: 1.9 $ -->
<section id="##ID##.configuration">
&reftitle.runtime;
&extension.runtime;\n\n
INIXML_HEADER;
+/*}}}*/
+/*{{{ $inixml_footer */
$inixml_footer = <<<INIXML_FOOTER
</section>
<!-- Keep this comment at the end of the file
@@ -80,7 +45,9 @@
vi: ts=1 sw=1
-->
INIXML_FOOTER;
-
+/*}}}*/
+
+/*{{{ $legend */
$legend = <<<LEGEND
<para>
Read the manual section on <link linkend="configuration">
@@ -124,7 +91,9 @@
</table>
</para>\n
LEGEND;
+/*}}}*/
+/*{{{ $table_header */
$table_header = <<<TABLE_HEADER
<para>
<table>
@@ -139,14 +108,18 @@
</thead>
<tbody>\n
TABLE_HEADER;
+/*}}}*/
+/*{{{ table_footer */
$table_footer = <<<TABLE_FOOTER
</tbody>
</tgroup>
</table>
</para>\n
TABLE_FOOTER;
+/*}}}*/
+// Auxiliary functions
function gentree($path, $remove_empty = false, $fileproc_cb = null) {/*{{{*/
$excludeitems = array ('CVS', 'tests', 'skeleton.c');
@@ -215,7 +188,7 @@
}
}/*}}}*/
-function flatentree($tree, $section) {
+function flatentree($tree, $section) {/*{{{*/
static $flat = array();
foreach ($tree as $node=>$val) {
if (array_key_exists($section, $val)) {
@@ -225,22 +198,14 @@
}
}
return $flat;
-}
-
-$dtree = gentree($phpsrc_dir, true, 'findINI');
-print_r($dtree);
-/*
-$ser = serialize($dtree);
-
-$fp = fopen('/tmp/PHPINIDEFS.ser', 'w');
-fwrite($fp, $ser);
-fflush($fp);
-fclose($fp);
-*/
+}/*}}}*/
-function createINI($dir, $cfgs) {
+function createINI($dir, $cfgs) {/*{{{*/
global $master_ini_table;
+ if (empty($cfgs)) {
+ return false;
+ }
$rows = '';
foreach ($cfgs as $name=>$vals) {
$rows .= " <row>\n";
@@ -290,9 +255,9 @@
} else {
echo "ERROR CREATING {$GLOBALS['phpdoc_dir']}/{$dir}/test_ini.xml\n";
}
-}
+}/*}}}*/
-function createMasterINI ($dir, $rows) {
+function createMasterINI ($dir, $rows) {/*{{{*/
$fp = fopen("{$GLOBALS['phpdoc_dir']}/{$dir}/config.master_test.xml", 'w');
$out = str_replace('##ID##','master', $GLOBALS['inixml_header']);
$out .= $GLOBALS['legend'];
@@ -304,19 +269,67 @@
fclose($fp);
echo "CREATED {$GLOBALS['phpdoc_dir']}/{$dir}/config.master_test.xml\n";
}
-}
+} /*}}}*/
+
+// Set the PHP4 and the PHPDOC source dirs
+
+// figure out the php4 source dir
+$phpsrc_dir = '';
+// use command line parameter is available
+if ($argc == 2 && $argv[1] != '') {
+ if (@is_dir($argv[1])) {
+ $phpsrc_dir = realpath($argv[1]);
+ } else {
+ die ("Invalid phpsrc_dir, {$argv[1]} is not a directory\n");
+ }
+}
+// otherwise try looking in the usual places
+if ($phpsrc_dir == '') {
+ if (file_exists('../php4')) {
+ $phpsrc_dir = realpath('../php4');
+ } else if (file_exists('../../php4')) {
+ $phpsrc_dir = realpath('../../php4');
+ } else {
+ die ("Cannot find PHP4 dir, set phpsrc_dir to the full path\n");
+ }
+}
+
+// figure out the phpdoc dir
+$phpdoc_dir = '';
+if ($phpdoc_dir == '') {
+ $current = getcwd();
+ if (preg_match('/\/phpdoc$/', $current)) {
+ $phpdoc_dir = $current;
+ } else {
+ $tmp = str_replace(strrchr($current,'/'),'',$current);
+ if (preg_match('/\/phpdoc$/', $tmp)) {
+ $phpdoc_dir = $tmp;
+ } else {
+ die ("Cannot find PHPDOC dir, set phpdoc_dir to the full path\n");
+ }
+ }
+}
+
+echo "Using:\nPHP4 SRC DIR: $phpsrc_dir\nPHPDOC DIR: $phpdoc_dir\n\n";
+
+$master_ini_table = '';
+
+// source tree
+$dtree = gentree($phpsrc_dir, true, 'findINI');
+//print_r($dtree);
// flatten tree
$flat = flatentree($dtree, 'INI');
-print_r($flat);
+//print_r($flat);
// map doc dirs w/ the appropriate set of source files
-$map = array (/*{{{*/
+/*{{{ $map */
+$map = array (
'en/chapters' => 'main.c,basic_functions.c',
'en/reference/apache' => 'php_apache.c',
'en/reference/array' => '',
'en/reference/aspell' => '',
- 'en/reference/bc' => '',
+ 'en/reference/bc' => 'bcmath.c',
'en/reference/bzip2' => '',
'en/reference/calendar' => '',
'en/reference/ccvs' => '',
@@ -427,7 +440,9 @@
'en/reference/yaz' => 'php_yaz.c',
'en/reference/zip' => '',
'en/reference/zlib' => 'zlib.c',
- );/*}}}*/
+ );
+/*}}}*/
+
// now walk through the map and generate the appropriate ini.xml files
foreach ($map as $dir=>$srcfiles) {
if ($srcfiles == '') {
@@ -445,4 +460,6 @@
createMasterINI('en/chapters', $master_ini_table);
+// vim: ts=4: sw=4: et:
+// vim6: fdm=marker: fdl=2:
?>
--
PHP Documentation Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php