diff options
author | Tomas V.V.Cox <cox@php.net> | 2003-06-29 20:49:09 +0000 |
---|---|---|
committer | Tomas V.V.Cox <cox@php.net> | 2003-06-29 20:49:09 +0000 |
commit | d5e365ac541f077035c6f4e88a3fe095e5cdfbc8 (patch) | |
tree | 0db79c7cd5e786e93823e083a04598c073d2f697 | |
parent | 42165c12b09768dfa7cf74e95f2ba7e8fba2ee3a (diff) | |
download | php-git-d5e365ac541f077035c6f4e88a3fe095e5cdfbc8.tar.gz |
Use the --with-pear=DIR, --prefix && --layout
# Will continue with the TODO in next time
-rw-r--r-- | pear/Makefile.frag | 4 | ||||
-rw-r--r-- | pear/install-pear.php | 68 |
2 files changed, 40 insertions, 32 deletions
diff --git a/pear/Makefile.frag b/pear/Makefile.frag index 022e80d747..6fbba54dfb 100644 --- a/pear/Makefile.frag +++ b/pear/Makefile.frag @@ -6,10 +6,10 @@ peardir=$(PEAR_INSTALLDIR) PEAR_INSTALL_FLAGS = -n -dsafe_mode=0 install-pear-installer: $(top_builddir)/sapi/cli/php - @$(top_builddir)/sapi/cli/php $(PEAR_INSTALL_FLAGS) $(srcdir)/install-pear.php $(srcdir)/package-*.xml + @$(top_builddir)/sapi/cli/php $(PEAR_INSTALL_FLAGS) $(srcdir)/install-pear.php -d "$(peardir)" $(srcdir)/package-*.xml install-pear-packages: $(top_builddir)/sapi/cli/php - @$(top_builddir)/sapi/cli/php $(PEAR_INSTALL_FLAGS) $(srcdir)/install-pear.php $(srcdir)/packages/*.tar + @$(top_builddir)/sapi/cli/php $(PEAR_INSTALL_FLAGS) $(srcdir)/install-pear.php -d "$(peardir)" $(srcdir)/packages/*.tar install-pear: @echo "Installing PEAR environment: $(INSTALL_ROOT)$(peardir)/" diff --git a/pear/install-pear.php b/pear/install-pear.php index c1a2d1341d..698a5d6077 100644 --- a/pear/install-pear.php +++ b/pear/install-pear.php @@ -1,41 +1,31 @@ <?php +// XXX TODO write the config file at the end as for example +// in 'system' layer + /* $Id$ */ $pear_dir = dirname(__FILE__); ini_set('include_path', $pear_dir); -##//include_once 'PEAR/Config.php'; include_once 'PEAR.php'; include_once 'PEAR/Installer.php'; include_once 'PEAR/Registry.php'; include_once 'PEAR/Frontend/CLI.php'; -##//$config = &PEAR_Config::singleton(); - -array_shift($argv); -if ($argv[0] == '--force') { - array_shift($argv); - $force = true; -} else { - $force = false; -} -// package => install_file +$force = false; $install_files = array(); - -/* -$dp = opendir($pear_dir); -while ($ent = readdir($dp)) { - if (ereg('^package-(.*)\.xml$', $ent, $matches)) { - $install_files[$matches[1]] = $ent; - } -} -closedir($dp); -*/ -foreach ($argv as $arg) { +array_shift($argv); +for ($i = 0; $i < sizeof($argv); $i++) { + $arg = $argv[$i]; $bn = basename($arg); - if (ereg('^package-(.*)\.xml$', $bn, $matches) || - ereg('^([A-Za-z0-9_:]+)-.*\.(tar|tgz)$', $bn, $matches)) { - $install_files[$matches[1]] = $arg; + if (ereg('package-(.*)\.xml$', $bn, $matches) || + ereg('([A-Za-z0-9_:]+)-.*\.(tar|tgz)$', $bn, $matches)) { + $install_files[$matches[1]] = $bn; + } elseif ($arg == '--force') { + $force = true; + } elseif ($arg == '-d') { + $with_dir = $argv[$i+1]; + $i++; } } @@ -47,11 +37,29 @@ foreach ($config_layers as $layer) { if ($layer == 'default') continue; $config->removeLayer($layer); } +$keys = $config->getKeys(); $config->set('verbose', 0, 'default'); +// User supplied a dir prefix +if (!empty($with_dir)) { + $ds = DIRECTORY_SEPARATOR; + $config->set('php_dir', $with_dir . $ds . 'lib', 'default'); + $config->set('bin_dir', $with_dir . $ds . 'bin', 'default'); + $config->set('doc_dir', $with_dir . $ds . 'doc', 'default'); + $config->set('data_dir', $with_dir . $ds . 'data', 'default'); + $config->set('test_dir', $with_dir . $ds . 'test', 'default'); +} +///* Print PEAR Conf (useful for debuging do NOT REMOVE) +sort($keys); +foreach ($keys as $key) { + echo $config->getPrompt($key) . ": " . $config->get($key) . "\n"; +} +exit; +// end print +//*/ -$options = array(); -$install_root = getenv("INSTALL_ROOT"); $php_dir = $config->get('php_dir'); +$options = array(); +$install_root = getenv('INSTALL_ROOT'); if (!empty($install_root)) { $options['installroot'] = $install_root; $reg_dir = $install_root . $php_dir; @@ -62,7 +70,7 @@ if (!empty($install_root)) { $reg = &new PEAR_Registry($reg_dir); $ui = &new PEAR_Frontend_CLI(); $installer = &new PEAR_Installer($ui); -$installer->registry = &$reg; +//$installer->registry = &$reg; // This should be changed in Installer/Registry foreach ($install_files as $package => $instfile) { if ($reg->packageExists($package)) { @@ -82,7 +90,7 @@ foreach ($install_files as $package => $instfile) { } $ui->outputData(sprintf("[PEAR] %-15s- upgraded: %s", $package, $new_ver)); } else { - if (@$argv[1] == '--force') { + if ($force) { $options['force'] = true; $err = $installer->install($instfile, $options); if (PEAR::isError($err)) { @@ -106,4 +114,4 @@ foreach ($install_files as $package => $instfile) { } } -?>
\ No newline at end of file +?> |