wez             Sun Feb  9 19:20:53 2003 EDT

  Modified files:              
    /php4/win32/installer       gen-nsis.php setini.php 
  Log:
  Fix php.ini customization.
  Apparently, it seems that running the php script with output captured to
  the log prevented it from working correctly.
  
  Also, deletes the php.ini when uninstalled.
  
  TODO: The defaults install and activate all extensions.  This is a problem
  for those extension that require non-bundled .dlls (such as OCI).
  
  
  
Index: php4/win32/installer/gen-nsis.php
diff -u php4/win32/installer/gen-nsis.php:1.1 php4/win32/installer/gen-nsis.php:1.2
--- php4/win32/installer/gen-nsis.php:1.1       Wed Feb  5 02:32:22 2003
+++ php4/win32/installer/gen-nsis.php   Sun Feb  9 19:20:53 2003
@@ -1,7 +1,7 @@
 ; PHP Installer for NSIS
 ; Based on Welcome/Finish Page Example Script (Written by Joost Verburg)
 ; Author: Wez Furlong <[EMAIL PROTECTED]>
-; $Id: gen-nsis.php,v 1.1 2003/02/05 07:32:22 wez Exp $
+; $Id: gen-nsis.php,v 1.2 2003/02/10 00:20:53 wez Exp $
 <?php
 
 define('PHPVERSION', phpversion());
@@ -314,7 +314,7 @@
 !define MUI_PRODUCT "PHP - Hypertext Preprocessor"
 !define MUI_VERSION "<?= PHPVERSION ?>"
 ; The second UI has a wider area for the component names
-!define MUI_UI "${NSISDIR}\Contrib\UIs\modern3.exe"    
+!define MUI_UI "${NSISDIR}\Contrib\UIs\modern2.exe"    
 
 !include "${NSISDIR}\Contrib\Modern UI\System.nsh"
 
@@ -347,16 +347,19 @@
 
 ;Folder-selection page
 InstallDir "C:\PHP-<?= PHPVERSION ?>"
-  
+;define NSIS_CONFIG_LOG "install.log"
+;LogSet on
+
+!cd <?= SOURCEDIR ?>win32\installer
+
 ;Things that need to be extracted on startup (keep these lines before any File 
command!)
 ;Only useful for BZIP2 compression
 ;Use ReserveFile for your own Install Options ini files too!
 !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
 !insertmacro MUI_RESERVEFILE_SPECIALINI
 !insertmacro MUI_RESERVEFILE_SPECIALBITMAP
-  
-;--------------------------------
-;Modern UI System
+
+!cd <?= DISTDIR ?>
 
 !insertmacro MUI_SYSTEM
 
@@ -380,9 +383,9 @@
        ; Extensions will call a function to activate their entry
        ; in the ini file as they are installed.
 
-       ifFileExists "<?= $SYSDIR ?>\php.ini" "" +2
-       Rename "<?= $SYSDIR ?>\php.ini" "<?= $SYSDIR ?>\php.ini.old"
-       CopyFiles "$INSTDIR\php.ini-dist" "<?= $SYSDIR ?>\php.ini"
+       ifFileExists "$WINDIR\php.ini" "" +2
+       Rename "<?= $SYSDIR ?>\php.ini" "$WINDIR\php.ini.old"
+       CopyFiles "$INSTDIR\php.ini-dist" "$WINDIR\php.ini"
 
 ; For editing the ini, put the cli and the php4ts.dll in the same dir
 ; these files will be deleted during post-installation
@@ -403,8 +406,7 @@
 ; Perform final actions after everything has been installed
 Section -post
        ; Merge ini settings
-       nsExec::ExecToLog "$\"$INSTDIR\strap-php.exe$\" $\"$INSTDIR\setini.php$\" 
$\"<?= $SYSDIR ?>\php.ini$\" $\"$INSTDIR\.ini-add$\""
-
+       ExecWait "$\"$INSTDIR\strap-php.exe$\" $\"$INSTDIR\setini.php$\" 
+$\"$WINDIR\php.ini$\" $\"$INSTDIR\.ini-add$\""
        Delete "$INSTDIR\.ini-add" ; Created by the AddIniSetting function
        Delete "$INSTDIR\setini.php"
        Delete "$INSTDIR\strap-php.exe"
@@ -431,6 +433,7 @@
 <?= $UNINSTALL ?>
 
        Delete "$INSTDIR\Uninstall.exe"
+       Delete "$WINDIR\php.ini"
        RMDir "$INSTDIR"
        ; Remove from Add/Remove programs list
        DeleteRegKey /ifempty HKLM 
"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\PHP-<?= PHPVERSION ?>"
Index: php4/win32/installer/setini.php
diff -u php4/win32/installer/setini.php:1.1 php4/win32/installer/setini.php:1.2
--- php4/win32/installer/setini.php:1.1 Wed Feb  5 02:32:22 2003
+++ php4/win32/installer/setini.php     Sun Feb  9 19:20:53 2003
@@ -1,5 +1,5 @@
 <?php
-/* $Id: setini.php,v 1.1 2003/02/05 07:32:22 wez Exp $
+/* $Id: setini.php,v 1.2 2003/02/10 00:20:53 wez Exp $
  * Wez Furlong <[EMAIL PROTECTED]>
  *
  * Set options in a php.ini file.
@@ -9,6 +9,8 @@
  * $argv[2] is the path to the option file
  */
 
+echo "Running post-installation script to configure php.ini\n";
+
 $ini_name = $argv[1];
 $option_file = $argv[2];
 
@@ -20,9 +22,9 @@
        list($name, $value) = explode("=", $line);
 
        if ($name == "extension") {
-               $pat = "/^;?extension\s*=\s*" . $value . "/i";
+               $pat = "/^;?extension\s*=\s*" . preg_quote($value, '/') . "/i";
        } else {
-               $pat = "/^;?$name\s*=\s*/i";
+               $pat = "/^;?" . preg_quote($name, '/') . "\s*=\s*/i";
        }
 
        $opts[] = array('pat' => $pat, 'name' => $name, 'value' => $value);
@@ -32,6 +34,9 @@
 $dest = fopen($new_name, "w");
 
 if (!$dest) {
+       echo "Could not create temporary file! $new_name\n";
+       flush();
+       sleep(10);
        die("Cannot create temporary file!");
 }
 
@@ -43,10 +48,7 @@
                extract($optdata);
                
                if (preg_match($pat, $line)) {
-                       echo "Found: $line\n";
                        $line = "$name=$value\r\n";
-                       echo" New value: $line\n";
-
                        // No need to match again
                        unset($opts[$k]);
                        break;
@@ -60,5 +62,7 @@
 
 unlink($ini_name);
 rename($new_name, $ini_name);
+
+echo "All done!\n";
 
 ?>



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to