yoavs       2005/08/02 11:35:15

  Modified:    .        tomcat.nsi
  Log:
  Corrected EOL characters.
  
  Revision  Changes    Path
  1.79      +683 -683  jakarta-tomcat-5/tomcat.nsi
  
  Index: tomcat.nsi
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-5/tomcat.nsi,v
  retrieving revision 1.78
  retrieving revision 1.79
  diff -u -r1.78 -r1.79
  --- tomcat.nsi        2 Aug 2005 18:12:05 -0000       1.78
  +++ tomcat.nsi        2 Aug 2005 18:35:15 -0000       1.79
  @@ -1,683 +1,683 @@
  -

  -; Tomcat script for Nullsoft Installer

  -; $Id$

  -

  -  ;Compression options

  -  CRCCheck on

  -  SetCompress force

  -  SetCompressor lzma

  -  SetDatablockOptimize on

  -

  -  Name "Apache Tomcat"

  -

  -  ;Product information

  -  VIAddVersionKey ProductName "Apache Tomcat"

  -  VIAddVersionKey CompanyName "Apache Software Foundation"

  -  VIAddVersionKey LegalCopyright "Copyright (c) 1999-2005 The Apache 
Software Foundation"

  -  VIAddVersionKey FileDescription "Apache Tomcat Installer"

  -  VIAddVersionKey FileVersion "2.0"

  -  VIAddVersionKey ProductVersion "@VERSION@"

  -  VIAddVersionKey Comments "jakarta.apache.org/tomcat"

  -  VIAddVersionKey InternalName "[EMAIL PROTECTED]@.exe"

  -  VIProductVersion @VERSION_NUMBER@

  -

  -!include "MUI.nsh"

  -!include "StrFunc.nsh"

  -${StrRep}

  -  Var "JavaHome"

  -

  -

  -

  -;--------------------------------

  -;Configuration

  -

  -  !define MUI_HEADERIMAGE

  -  !define MUI_HEADERIMAGE_RIGHT

  -  !define MUI_HEADERIMAGE_BITMAP header.bmp

  -  !define MUI_WELCOMEFINISHPAGE_BITMAP side_left.bmp 

  -  !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\webapps\ROOT\RELEASE-NOTES.txt"

  -  !define MUI_FINISHPAGE_RUN $INSTDIR\bin\tomcat5w.exe

  -  !define MUI_FINISHPAGE_RUN_PARAMETERS //MR//Tomcat5

  -  !define MUI_FINISHPAGE_NOREBOOTSUPPORT

  -

  -  !define MUI_ABORTWARNING

  -

  -  !define TEMP1 $R0

  -  !define TEMP2 $R1

  -

  -  !define MUI_ICON tomcat.ico

  -  !define MUI_UNICON tomcat.ico

  -

  -  ;General

  -  OutFile tomcat-installer.exe

  -

  -  ;Install Options pages

  -  LangString TEXT_JVM_TITLE ${LANG_ENGLISH} "Java Virtual Machine"

  -  LangString TEXT_JVM_SUBTITLE ${LANG_ENGLISH} "Java Virtual Machine path 
selection."

  -  LangString TEXT_JVM_PAGETITLE ${LANG_ENGLISH} ": Java Virtual Machine path 
selection"

  -

  -  LangString TEXT_CONF_TITLE ${LANG_ENGLISH} "Configuration"

  -  LangString TEXT_CONF_SUBTITLE ${LANG_ENGLISH} "Tomcat basic configuration."

  -  LangString TEXT_CONF_PAGETITLE ${LANG_ENGLISH} ": Configuration Options"

  -

  -  ;Install Page order

  -  !insertmacro MUI_PAGE_WELCOME

  -  !insertmacro MUI_PAGE_LICENSE INSTALLLICENSE

  -  !insertmacro MUI_PAGE_COMPONENTS

  -  !insertmacro MUI_PAGE_DIRECTORY

  -  Page custom SetConfiguration Void "$(TEXT_CONF_PAGETITLE)"

  -  Page custom SetChooseJVM Void "$(TEXT_JVM_PAGETITLE)"

  -  !insertmacro MUI_PAGE_INSTFILES

  -  Page custom CheckUserType

  -  !insertmacro MUI_PAGE_FINISH

  -

  -  ;Uninstall Page order

  -  !insertmacro MUI_UNPAGE_CONFIRM

  -  !insertmacro MUI_UNPAGE_INSTFILES

  -

  -  ;License dialog

  -  LicenseData License.rtf

  -

  -  ;Component-selection page

  -    ;Descriptions

  -    LangString DESC_SecTomcat ${LANG_ENGLISH} "Install the Tomcat Servlet 
container."

  -    LangString DESC_SecTomcatCore ${LANG_ENGLISH} "Install the Tomcat 
Servlet container core."

  -    LangString DESC_SecTomcatService ${LANG_ENGLISH} "Automatically start 
Tomcat when the computer is started. This requires Windows NT 4.0, Windows 2000 
or Windows XP."

  -;    LangString DESC_SecTomcatSource ${LANG_ENGLISH} "Install the Tomcat 
source code."

  -    LangString DESC_SecMenu ${LANG_ENGLISH} "Create a Start Menu program 
group for Tomcat."

  -    LangString DESC_SecDocs ${LANG_ENGLISH} "Install the Tomcat 
documentation bundle. This include documentation on the servlet container and 
its configuration options, on the Jasper JSP page compiler, as well as on the 
native webserver connectors."

  -    LangString DESC_SecExamples ${LANG_ENGLISH} "Installs some examples web 
applications."

  -    LangString DESC_SecAdmin ${LANG_ENGLISH} "Installs the administration 
web application.";

  -;    LangString DESC_SecWebapps ${LANG_ENGLISH} "Installs other utility web 
applications (WebDAV, balancer, etc)."

  -;    LangString DESC_SecCompat ${LANG_ENGLISH} "Installs Java2™ 
compatibility package. This release of Apache Tomcat was packaged to run on 
J2SE 5.0 or later. It can be run on earlier JVMs by installng this package."

  -

  -  ;Language

  -  !insertmacro MUI_LANGUAGE English

  -

  -  ;Folder-select dialog

  -  InstallDir "$PROGRAMFILES\Apache Software Foundation\Tomcat 5.5"

  -

  -  ;Install types

  -  InstType Normal

  -  InstType Minimum

  -  InstType Full

  -

  -  ; Main registry key

  -  InstallDirRegKey HKLM "SOFTWARE\Apache Software Foundation\Tomcat\5.5" ""

  -

  -  !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS

  -  ReserveFile "jvm.ini"

  -  ReserveFile "config.ini"

  -

  -;--------------------------------

  -;Installer Sections

  -

  -SubSection "Tomcat" SecTomcat

  -

  -Section "Core" SecTomcatCore

  -

  -  SectionIn 1 2 3 RO

  -

  -  IfSilent +2 0

  -  Call checkJvm

  -

  -  SetOutPath $INSTDIR

  -  File tomcat.ico

  -  File LICENSE

  -  File /r common

  -  File /nonfatal /r shared

  -  File /nonfatal /r logs

  -  File /nonfatal /r work

  -  File /nonfatal /r temp

  -  SetOutPath $INSTDIR\bin

  -  File bin\bootstrap.jar

  -  File bin\commons-logging-api.jar

  -  File bin\tomcat-juli.jar

  -  File bin\*.exe

  -  SetOutPath $INSTDIR\conf

  -  File conf\*.*

  -  SetOutPath $INSTDIR\server

  -  File /r server\lib

  -  File /nonfatal /r server\classes

  -  SetOutPath $INSTDIR\server\webapps

  -  File /r server\webapps\manager

  -  File /r server\webapps\host-manager

  -  SetOutPath $INSTDIR\webapps

  -  File /r webapps\ROOT

  -  SetOutPath $INSTDIR\conf\Catalina\localhost

  -  File conf\Catalina\localhost\manager.xml

  -  File conf\Catalina\localhost\host-manager.xml

  -

  -  Call configure

  -  Call findJavaPath

  -  Pop $2

  -

  -  IfSilent +2 0

  -  !insertmacro MUI_INSTALLOPTIONS_READ $2 "jvm.ini" "Field 2" "State"

  -

  -  StrCpy "$JavaHome" $2

  -  Call findJVMPath

  -  Pop $2

  -

  -  DetailPrint "Using Jvm: $2"

  -

  -  InstallRetry:

  -  ClearErrors

  -  nsExec::ExecToLog '"$INSTDIR\bin\tomcat5.exe" //IS//Tomcat5 --DisplayName 
"Apache Tomcat" --Description "Apache Tomcat @VERSION@ Server - 
http://jakarta.apache.org/tomcat/"; --LogPath "$INSTDIR\logs" --Install 
"$INSTDIR\bin\tomcat5.exe" --Jvm "$2" --StartPath "$INSTDIR" --StopPath 
"$INSTDIR"'

  -  Pop $0

  -  StrCmp $0 "0" InstallOk

  -    MessageBox MB_ABORTRETRYIGNORE|MB_ICONSTOP \

  -      "Failed to install Tomcat5 service.$\r$\nCheck your settings and 
permissions$\r$\nIgnore and continue anyway (not recommended)?" \

  -       /SD IDIGNORE IDIGNORE InstallOk IDRETRY InstallRetry

  -  Quit

  -  InstallOk:

  -  ClearErrors

  -

  -SectionEnd

  -

  -Section "Service" SecTomcatService

  -

  -  SectionIn 3

  -

  -  IfSilent 0 +3

  -  Call findJavaPath

  -  Pop $2

  -

  -  IfSilent +2 0

  -  !insertmacro MUI_INSTALLOPTIONS_READ $2 "jvm.ini" "Field 2" "State"

  -

  -  StrCpy "$JavaHome" $2

  -  Call findJVMPath

  -  Pop $2

  -

  -  nsExec::ExecToLog '"$INSTDIR\bin\tomcat5.exe" //US//Tomcat5 --Startup auto'

  -  ; Bahave like Apache Httpd (put the icon in try on login)

  -  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Run" 
"ApacheTomcatMonitor" '"$INSTDIR\bin\tomcat5w.exe" //MS//Tomcat5'

  -

  -  ClearErrors

  -

  -SectionEnd

  -

  -;Section "Source Code" SecTomcatSource

  -;

  -;  SectionIn 3

  -;  SetOutPath $INSTDIR

  -;  File /r src

  -;

  -;SectionEnd

  -

  -SubSectionEnd

  -

  -Section "Start Menu Items" SecMenu

  -

  -  SectionIn 1 2 3

  -

  -  !insertmacro MUI_INSTALLOPTIONS_READ $2 "jvm.ini" "Field 2" "State"

  -

  -  SetOutPath "$SMPROGRAMS\Apache Tomcat 5.5"

  -

  -  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Tomcat Home Page.lnk" \

  -                 "http://jakarta.apache.org/tomcat";

  -

  -  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Welcome.lnk" \

  -                 "http://127.0.0.1:$R0/";

  -

  -;  IfFileExists "$INSTDIR\server\webapps\admin" 0 NoAdminApp

  -;

  -;  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Tomcat Administration.lnk" \

  -;                 "http://127.0.0.1:$R0/admin/";

  -;NoAdminApp:

  -

  -  IfFileExists "$INSTDIR\server\webapps\manager" 0 NoManagerApp

  -

  -  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Tomcat Manager.lnk" \

  -                 "http://127.0.0.1:$R0/manager/html";

  -

  -NoManagerApp:

  -

  -  IfFileExists "$INSTDIR\webapps\webapps\tomcat-docs" 0 NoDocumentaion

  -

  -  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Tomcat Documentation.lnk" \

  -                 "$INSTDIR\webapps\tomcat-docs\index.html"

  -

  -NoDocumentaion:

  -

  -  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Uninstall Tomcat 5.5.lnk" \

  -                 "$INSTDIR\Uninstall.exe"

  -

  -  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Tomcat 5.5 Program 
Directory.lnk" \

  -                 "$INSTDIR"

  -

  -  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Monitor Tomcat.lnk" \

  -                 "$INSTDIR\bin\tomcat5w.exe" \

  -                 '//MS//Tomcat5' \

  -                 "$INSTDIR\tomcat.ico" 0 SW_SHOWNORMAL

  -

  -  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Configure Tomcat.lnk" \

  -                 "$INSTDIR\bin\tomcat5w.exe" \

  -                 '//ES//Tomcat5' \

  -                 "$INSTDIR\tomcat.ico" 0 SW_SHOWNORMAL

  -

  -SectionEnd

  -

  -Section "Documentation" SecDocs

  -

  -  SectionIn 1 3

  -  SetOutPath $INSTDIR\webapps

  -  File /r webapps\tomcat-docs

  -

  -SectionEnd

  -

  -Section "Examples" SecExamples

  -

  -  SectionIn 3

  -

  -  SetOverwrite on

  -  SetOutPath $INSTDIR\webapps

  -  File /r webapps\jsp-examples

  -  File /r webapps\servlets-examples

  -

  -SectionEnd

  -

  -;Section "Administration" SecAdmin

  -;

  -;  SectionIn 3

  -;

  -;  SetOutPath $INSTDIR\server\webapps

  -;  File /r server\webapps\admin

  -;  SetOutPath $INSTDIR\conf\Catalina\localhost

  -;  File conf\Catalina\localhost\admin.xml

  -;

  -;SectionEnd

  -

  -Section "Webapps" SecWebapps

  -

  -  SectionIn 3

  -

  -  SetOutPath $INSTDIR\webapps

  -  File /r webapps\balancer

  -  File /r webapps\webdav

  -

  -SectionEnd

  -

  -;Section "Compatibility" SecCompat

  -;

  -;  SetOutPath $INSTDIR

  -;  File /oname=bin\jmx.jar ..\compat\bin\jmx.jar

  -;  File /oname=common\endorsed\xercesImpl.jar 
..\compat\common\endorsed\xercesImpl.jar

  -;  File /oname=common\endorsed\xml-apis.jar  
..\compat\common\endorsed\xml-apis.jar

  -;

  -;SectionEnd

  -

  -Section -post

  -  nsExec::ExecToLog '"$INSTDIR\bin\tomcat5.exe" //US//Tomcat5 --Classpath 
"$INSTDIR\bin\bootstrap.jar" --StartClass org.apache.catalina.startup.Bootstrap 
--StopClass org.apache.catalina.startup.Bootstrap --StartParams start 
--StopParams stop  --StartMode jvm --StopMode jvm'

  -  nsExec::ExecToLog '"$INSTDIR\bin\tomcat5.exe" //US//Tomcat5 --JvmOptions 
"-Dcatalina.home=$INSTDIR#-Dcatalina.base=$INSTDIR#-Djava.endorsed.dirs=$INSTDIR\common\endorsed#-Djava.io.tmpdir=$INSTDIR\temp#-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager#-Djava.util.logging.config.file=${catalina.base}\conf\logging.properties"
 --StdOutput auto --StdError auto'

  -

  -  WriteUninstaller "$INSTDIR\Uninstall.exe"

  -

  -  WriteRegStr HKLM "SOFTWARE\Apache Software Foundation\Tomcat\5.5" 
"InstallPath" $INSTDIR

  -  WriteRegStr HKLM "SOFTWARE\Apache Software Foundation\Tomcat\5.5" 
"Version" @VERSION@

  -  WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\Apache Tomcat 5.5" \

  -                   "DisplayName" "Apache Tomcat 5.5 (remove only)"

  -  WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\Apache Tomcat 5.5" \

  -                   "UninstallString" '"$INSTDIR\Uninstall.exe"'

  -

  -SectionEnd

  -

  -Function .onInit

  -

  -  ;Extract Install Options INI Files

  -  !insertmacro MUI_INSTALLOPTIONS_EXTRACT "config.ini"

  -  !insertmacro MUI_INSTALLOPTIONS_EXTRACT "jvm.ini"

  -

  -FunctionEnd

  -

  -Function SetChooseJVM

  -  !insertmacro MUI_HEADER_TEXT "$(TEXT_JVM_TITLE)" "$(TEXT_JVM_SUBTITLE)"

  -  Call findJavaPath

  -  Pop $3

  -  !insertmacro MUI_INSTALLOPTIONS_WRITE "jvm.ini" "Field 2" "State" $3

  -  !insertmacro MUI_INSTALLOPTIONS_DISPLAY "jvm.ini"

  -FunctionEnd

  -

  -Function SetConfiguration

  -  !insertmacro MUI_HEADER_TEXT "$(TEXT_CONF_TITLE)" "$(TEXT_CONF_SUBTITLE)"

  -  !insertmacro MUI_INSTALLOPTIONS_DISPLAY "config.ini"

  -FunctionEnd

  -

  -Function Void

  -FunctionEnd

  -

  -;--------------------------------

  -;Descriptions

  -

  -!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN

  -  !insertmacro MUI_DESCRIPTION_TEXT ${SecTomcat} $(DESC_SecTomcat)

  -  !insertmacro MUI_DESCRIPTION_TEXT ${SecTomcatCore} $(DESC_SecTomcatCore)

  -  !insertmacro MUI_DESCRIPTION_TEXT ${SecTomcatService} 
$(DESC_SecTomcatService)

  -;  !insertmacro MUI_DESCRIPTION_TEXT ${SecTomcatSource} 
$(DESC_SecTomcatSource)

  -;  !insertmacro MUI_DESCRIPTION_TEXT ${SecCompat} $(DESC_SecCompat)

  -  !insertmacro MUI_DESCRIPTION_TEXT ${SecMenu} $(DESC_SecMenu)

  -  !insertmacro MUI_DESCRIPTION_TEXT ${SecDocs} $(DESC_SecDocs)

  -  !insertmacro MUI_DESCRIPTION_TEXT ${SecExamples} $(DESC_SecExamples)

  -;  !insertmacro MUI_DESCRIPTION_TEXT ${SecAdmin} $(DESC_SecAdmin)

  -  !insertmacro MUI_DESCRIPTION_TEXT ${SecWebapps} $(DESC_SecWebapps)

  -!insertmacro MUI_FUNCTION_DESCRIPTION_END

  -

  -

  -; =====================

  -; CheckUserType Function

  -; =====================

  -;

  -; Check the user type, and warn if it's not an administrator.

  -; Taken from Examples/UserInfo that ships with NSIS.

  -Function CheckUserType

  -  ClearErrors

  -  UserInfo::GetName

  -  IfErrors Win9x

  -  Pop $0

  -  UserInfo::GetAccountType

  -  Pop $1

  -  StrCmp $1 "Admin" 0 +3

  -    ; This is OK, do nothing

  -    Goto done

  -

  -    MessageBox MB_OK|MB_ICONEXCLAMATION 'Note: the current user is not an 
administrator. \

  -               To run Tomcat as a Windows service, you must be an 
administrator. \

  -               You can still run Tomcat from the command-line as this type 
of user.'

  -    Goto done

  -

  -  Win9x:

  -    # This one means you don't need to care about admin or

  -    # not admin because Windows 9x doesn't either

  -    MessageBox MB_OK "Error! This DLL can't run under Windows 9x!"

  -

  -  done:

  -FunctionEnd

  -

  -

  -; =====================

  -; FindJavaPath Function

  -; =====================

  -;

  -; Find the JAVA_HOME used on the system, and put the result on the top of the

  -; stack

  -; Will return an empty string if the path cannot be determined

  -;

  -Function findJavaPath

  -

  -  ;ClearErrors

  -

  -  ;ReadEnvStr $1 JAVA_HOME

  -

  -  ;IfErrors 0 FoundJDK

  -

  -  ClearErrors

  -

  -  ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" 
"CurrentVersion"

  -  ReadRegStr $1 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment\$2" 
"JavaHome"

  -  ReadRegStr $3 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment\$2" 
"RuntimeLib"

  -

  -  ;FoundJDK:

  -

  -  IfErrors 0 NoErrors

  -  StrCpy $1 ""

  -

  -NoErrors:

  -

  -  ClearErrors

  -

  -  ; Put the result in the stack

  -  Push $1

  -

  -FunctionEnd

  -

  -

  -; ====================

  -; FindJVMPath Function

  -; ====================

  -;

  -; Find the full JVM path, and put the result on top of the stack

  -; Argument: JVM base path (result of findJavaPath)

  -; Will return an empty string if the path cannot be determined

  -;

  -Function findJVMPath

  -

  -  ClearErrors

  -  

  -  ;Step one: Is this a JRE path (Program Files\Java\XXX)

  -  StrCpy $1 "$JavaHome"

  -  

  -  StrCpy $2 "$1\bin\hotspot\jvm.dll"

  -  IfFileExists "$2" FoundJvmDll

  -  StrCpy $2 "$1\bin\server\jvm.dll"

  -  IfFileExists "$2" FoundJvmDll

  -  StrCpy $2 "$1\bin\client\jvm.dll"  

  -  IfFileExists "$2" FoundJvmDll

  -  StrCpy $2 "$1\bin\classic\jvm.dll"

  -  IfFileExists "$2" FoundJvmDll

  -

  -  ;Step two: Is this a JDK path (Program Files\XXX\jre)

  -  StrCpy $1 "$JavaHome\jre"

  -  

  -  StrCpy $2 "$1\bin\hotspot\jvm.dll"

  -  IfFileExists "$2" FoundJvmDll

  -  StrCpy $2 "$1\bin\server\jvm.dll"

  -  IfFileExists "$2" FoundJvmDll

  -  StrCpy $2 "$1\bin\client\jvm.dll"  

  -  IfFileExists "$2" FoundJvmDll

  -  StrCpy $2 "$1\bin\classic\jvm.dll"

  -  IfFileExists "$2" FoundJvmDll

  -

  -  ClearErrors

  -  ;Step tree: Read defaults from registry

  -  

  -  ReadRegStr $1 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" 
"CurrentVersion"

  -  ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment\$1" 
"RuntimeLib"

  -  

  -  IfErrors 0 FoundJvmDll

  -  StrCpy $2 ""

  -

  -  FoundJvmDll:

  -  ClearErrors

  -

  -  ; Put the result in the stack

  -  Push $2

  -

  -FunctionEnd

  -

  -

  -; ====================

  -; CheckJvm Function

  -; ====================

  -;

  -Function checkJvm

  -

  -  !insertmacro MUI_INSTALLOPTIONS_READ $3 "jvm.ini" "Field 2" "State"

  -  IfFileExists "$3\bin\java.exe" NoErrors1

  -  MessageBox MB_OK|MB_ICONSTOP "No Java Virtual Machine found in 
folder:$\r$\n$3"

  -  Quit

  -NoErrors1:

  -  StrCpy "$JavaHome" $3

  -  Call findJVMPath

  -  Pop $4

  -  StrCmp $4 "" 0 NoErrors2

  -  MessageBox MB_OK|MB_ICONSTOP "No Java Virtual Machine found in 
folder:$\r$\n$3"

  -  Quit

  -NoErrors2:

  -

  -FunctionEnd

  -

  -; ==================

  -; Configure Function

  -; ==================

  -;

  -; Display the configuration dialog boxes, read the values entered by the 
user,

  -; and build the configuration files

  -;

  -Function configure

  -

  -  !insertmacro MUI_INSTALLOPTIONS_READ $R0 "config.ini" "Field 2" "State"

  -  !insertmacro MUI_INSTALLOPTIONS_READ $R1 "config.ini" "Field 5" "State"

  -  !insertmacro MUI_INSTALLOPTIONS_READ $R2 "config.ini" "Field 7" "State"

  -

  -  IfSilent 0 +2

  -  StrCpy $R4 'port="8080"'

  -

  -  IfSilent +2 0

  -  StrCpy $R4 'port="$R0"'

  -

  -  IfSilent 0 +2

  -  StrCpy $R5 ''

  -

  -  IfSilent Silent 0

  -

  -  ; Escape XML

  -  Push $R1

  -  Call xmlEscape

  -  Pop $R1

  -  Push $R2

  -  Call xmlEscape

  -  Pop $R2

  -  

  -  StrCpy $R5 '<user name="$R1" password="$R2" roles="admin,manager" />'

  -

  -Silent:

  -  DetailPrint 'HTTP/1.1 Connector configured on port "$R0"'

  -  DetailPrint 'Admin user added: "$R1"'

  -

  -  SetOutPath $TEMP

  -  File /r confinstall

  -

  -  ; Build final server.xml

  -  Delete "$INSTDIR\conf\server.xml"

  -  FileOpen $R9 "$INSTDIR\conf\server.xml" w

  -

  -  Push "$TEMP\confinstall\server_1.xml"

  -  Call copyFile

  -  FileWrite $R9 $R4

  -  Push "$TEMP\confinstall\server_2.xml"

  -  Call copyFile

  -

  -  FileClose $R9

  -

  -  DetailPrint "server.xml written"

  -

  -  ; Build final tomcat-users.xml

  -  

  -  Delete "$INSTDIR\conf\tomcat-users.xml"

  -  FileOpen $R9 "$INSTDIR\conf\tomcat-users.xml" w

  -

  -  Push "$TEMP\confinstall\tomcat-users_1.xml"

  -  Call copyFile

  -  FileWrite $R9 $R5

  -  Push "$TEMP\confinstall\tomcat-users_2.xml"

  -  Call copyFile

  -

  -  FileClose $R9

  -

  -  DetailPrint "tomcat-users.xml written"

  -

  -  RMDir /r "$TEMP\confinstall"

  -

  -FunctionEnd

  -

  -

  -Function xmlEscape

  -  Pop $0

  -  ${StrRep} $0 $0 "&" "&amp;"

  -  ${StrRep} $0 $0 "$\"" "&quot;"

  -  ${StrRep} $0 $0 "<" "&lt;"

  -  ${StrRep} $0 $0 ">" "&gt;"

  -  Push $0

  -FunctionEnd

  -

  -

  -; =================

  -; CopyFile Function

  -; =================

  -;

  -; Copy specified file contents to $R9

  -;

  -Function copyFile

  -

  -  ClearErrors

  -

  -  Pop $0

  -

  -  FileOpen $1 $0 r

  -

  - NoError:

  -

  -  FileRead $1 $2

  -  IfErrors EOF 0

  -  FileWrite $R9 $2

  -

  -  IfErrors 0 NoError

  -

  - EOF:

  -

  -  FileClose $1

  -

  -  ClearErrors

  -

  -FunctionEnd

  -

  -

  -;--------------------------------

  -;Uninstaller Section

  -

  -Section Uninstall

  -

  -  Delete "$INSTDIR\modern.exe"

  -  Delete "$INSTDIR\Uninstall.exe"

  -

  -  ; Stop Tomcat service monitor if running

  -  nsExec::ExecToLog '"$INSTDIR\bin\tomcat5w.exe" //MQ//Tomcat5'

  -  ; Delete Tomcat service

  -  nsExec::ExecToLog '"$INSTDIR\bin\tomcat5.exe" //DS//Tomcat5'

  -  ClearErrors

  -

  -  DeleteRegKey HKCR "JSPFile"

  -  DeleteRegKey HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\Apache Tomcat 5.5"

  -  DeleteRegKey HKLM "SOFTWARE\Apache Software Foundation\Tomcat\5.5"

  -  DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Run" 
"ApacheTomcatMonitor"

  -  RMDir /r "$SMPROGRAMS\Apache Tomcat 5.5"

  -  Delete "$INSTDIR\tomcat.ico"

  -  Delete "$INSTDIR\LICENSE"

  -  RMDir /r "$INSTDIR\bin"

  -  RMDir /r "$INSTDIR\common"

  -  Delete "$INSTDIR\conf\*.dtd"

  -  RMDir /r "$INSTDIR\shared"

  -  RMDir "$INSTDIR\logs"

  -  RMDir /r "$INSTDIR\server"

  -  RMDir /r "$INSTDIR\webapps\balancer"

  -  RMDir /r "$INSTDIR\webapps\tomcat-docs"

  -  RMDir /r "$INSTDIR\webapps\servlets-examples"

  -  RMDir /r "$INSTDIR\webapps\jsp-examples"

  -  RMDir /r "$INSTDIR\webapps\webdav"

  -  RMDir /r "$INSTDIR\work"

  -  RMDir /r "$INSTDIR\temp"

  -  RMDir /r "$INSTDIR\src"

  -  RMDir "$INSTDIR"

  -

  -  IfSilent Removed 0

  -

  -  ; if $INSTDIR was removed, skip these next ones

  -  IfFileExists "$INSTDIR" 0 Removed 

  -    MessageBox MB_YESNO|MB_ICONQUESTION \

  -      "Remove all files in your Tomcat 5.5 directory? (If you have anything  
\

  - you created that you want to keep, click No)" IDNO Removed

  -    RMDir /r "$INSTDIR\webapps\ROOT" ; this would be skipped if the user 
hits no

  -    RMDir "$INSTDIR\webapps"

  -    Delete "$INSTDIR\*.*" 

  -    RMDir /r "$INSTDIR"

  -    Sleep 500

  -    IfFileExists "$INSTDIR" 0 Removed 

  -      MessageBox MB_OK|MB_ICONEXCLAMATION \

  -                 "Note: $INSTDIR could not be removed."

  -  Removed:

  -

  -SectionEnd

  -

  -;eof

  +
  +; Tomcat script for Nullsoft Installer
  +; $Id$
  +
  +  ;Compression options
  +  CRCCheck on
  +  SetCompress force
  +  SetCompressor lzma
  +  SetDatablockOptimize on
  +
  +  Name "Apache Tomcat"
  +
  +  ;Product information
  +  VIAddVersionKey ProductName "Apache Tomcat"
  +  VIAddVersionKey CompanyName "Apache Software Foundation"
  +  VIAddVersionKey LegalCopyright "Copyright (c) 1999-2005 The Apache 
Software Foundation"
  +  VIAddVersionKey FileDescription "Apache Tomcat Installer"
  +  VIAddVersionKey FileVersion "2.0"
  +  VIAddVersionKey ProductVersion "@VERSION@"
  +  VIAddVersionKey Comments "jakarta.apache.org/tomcat"
  +  VIAddVersionKey InternalName "[EMAIL PROTECTED]@.exe"
  +  VIProductVersion @VERSION_NUMBER@
  +
  +!include "MUI.nsh"
  +!include "StrFunc.nsh"
  +${StrRep}
  +  Var "JavaHome"
  +
  +
  +
  +;--------------------------------
  +;Configuration
  +
  +  !define MUI_HEADERIMAGE
  +  !define MUI_HEADERIMAGE_RIGHT
  +  !define MUI_HEADERIMAGE_BITMAP header.bmp
  +  !define MUI_WELCOMEFINISHPAGE_BITMAP side_left.bmp 
  +  !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\webapps\ROOT\RELEASE-NOTES.txt"
  +  !define MUI_FINISHPAGE_RUN $INSTDIR\bin\tomcat5w.exe
  +  !define MUI_FINISHPAGE_RUN_PARAMETERS //MR//Tomcat5
  +  !define MUI_FINISHPAGE_NOREBOOTSUPPORT
  +
  +  !define MUI_ABORTWARNING
  +
  +  !define TEMP1 $R0
  +  !define TEMP2 $R1
  +
  +  !define MUI_ICON tomcat.ico
  +  !define MUI_UNICON tomcat.ico
  +
  +  ;General
  +  OutFile tomcat-installer.exe
  +
  +  ;Install Options pages
  +  LangString TEXT_JVM_TITLE ${LANG_ENGLISH} "Java Virtual Machine"
  +  LangString TEXT_JVM_SUBTITLE ${LANG_ENGLISH} "Java Virtual Machine path 
selection."
  +  LangString TEXT_JVM_PAGETITLE ${LANG_ENGLISH} ": Java Virtual Machine path 
selection"
  +
  +  LangString TEXT_CONF_TITLE ${LANG_ENGLISH} "Configuration"
  +  LangString TEXT_CONF_SUBTITLE ${LANG_ENGLISH} "Tomcat basic configuration."
  +  LangString TEXT_CONF_PAGETITLE ${LANG_ENGLISH} ": Configuration Options"
  +
  +  ;Install Page order
  +  !insertmacro MUI_PAGE_WELCOME
  +  !insertmacro MUI_PAGE_LICENSE INSTALLLICENSE
  +  !insertmacro MUI_PAGE_COMPONENTS
  +  !insertmacro MUI_PAGE_DIRECTORY
  +  Page custom SetConfiguration Void "$(TEXT_CONF_PAGETITLE)"
  +  Page custom SetChooseJVM Void "$(TEXT_JVM_PAGETITLE)"
  +  !insertmacro MUI_PAGE_INSTFILES
  +  Page custom CheckUserType
  +  !insertmacro MUI_PAGE_FINISH
  +
  +  ;Uninstall Page order
  +  !insertmacro MUI_UNPAGE_CONFIRM
  +  !insertmacro MUI_UNPAGE_INSTFILES
  +
  +  ;License dialog
  +  LicenseData License.rtf
  +
  +  ;Component-selection page
  +    ;Descriptions
  +    LangString DESC_SecTomcat ${LANG_ENGLISH} "Install the Tomcat Servlet 
container."
  +    LangString DESC_SecTomcatCore ${LANG_ENGLISH} "Install the Tomcat 
Servlet container core."
  +    LangString DESC_SecTomcatService ${LANG_ENGLISH} "Automatically start 
Tomcat when the computer is started. This requires Windows NT 4.0, Windows 2000 
or Windows XP."
  +;    LangString DESC_SecTomcatSource ${LANG_ENGLISH} "Install the Tomcat 
source code."
  +    LangString DESC_SecMenu ${LANG_ENGLISH} "Create a Start Menu program 
group for Tomcat."
  +    LangString DESC_SecDocs ${LANG_ENGLISH} "Install the Tomcat 
documentation bundle. This include documentation on the servlet container and 
its configuration options, on the Jasper JSP page compiler, as well as on the 
native webserver connectors."
  +    LangString DESC_SecExamples ${LANG_ENGLISH} "Installs some examples web 
applications."
  +    LangString DESC_SecAdmin ${LANG_ENGLISH} "Installs the administration 
web application.";
  +;    LangString DESC_SecWebapps ${LANG_ENGLISH} "Installs other utility web 
applications (WebDAV, balancer, etc)."
  +;    LangString DESC_SecCompat ${LANG_ENGLISH} "Installs Java2™ 
compatibility package. This release of Apache Tomcat was packaged to run on 
J2SE 5.0 or later. It can be run on earlier JVMs by installng this package."
  +
  +  ;Language
  +  !insertmacro MUI_LANGUAGE English
  +
  +  ;Folder-select dialog
  +  InstallDir "$PROGRAMFILES\Apache Software Foundation\Tomcat 5.5"
  +
  +  ;Install types
  +  InstType Normal
  +  InstType Minimum
  +  InstType Full
  +
  +  ; Main registry key
  +  InstallDirRegKey HKLM "SOFTWARE\Apache Software Foundation\Tomcat\5.5" ""
  +
  +  !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
  +  ReserveFile "jvm.ini"
  +  ReserveFile "config.ini"
  +
  +;--------------------------------
  +;Installer Sections
  +
  +SubSection "Tomcat" SecTomcat
  +
  +Section "Core" SecTomcatCore
  +
  +  SectionIn 1 2 3 RO
  +
  +  IfSilent +2 0
  +  Call checkJvm
  +
  +  SetOutPath $INSTDIR
  +  File tomcat.ico
  +  File LICENSE
  +  File /r common
  +  File /nonfatal /r shared
  +  File /nonfatal /r logs
  +  File /nonfatal /r work
  +  File /nonfatal /r temp
  +  SetOutPath $INSTDIR\bin
  +  File bin\bootstrap.jar
  +  File bin\commons-logging-api.jar
  +  File bin\tomcat-juli.jar
  +  File bin\*.exe
  +  SetOutPath $INSTDIR\conf
  +  File conf\*.*
  +  SetOutPath $INSTDIR\server
  +  File /r server\lib
  +  File /nonfatal /r server\classes
  +  SetOutPath $INSTDIR\server\webapps
  +  File /r server\webapps\manager
  +  File /r server\webapps\host-manager
  +  SetOutPath $INSTDIR\webapps
  +  File /r webapps\ROOT
  +  SetOutPath $INSTDIR\conf\Catalina\localhost
  +  File conf\Catalina\localhost\manager.xml
  +  File conf\Catalina\localhost\host-manager.xml
  +
  +  Call configure
  +  Call findJavaPath
  +  Pop $2
  +
  +  IfSilent +2 0
  +  !insertmacro MUI_INSTALLOPTIONS_READ $2 "jvm.ini" "Field 2" "State"
  +
  +  StrCpy "$JavaHome" $2
  +  Call findJVMPath
  +  Pop $2
  +
  +  DetailPrint "Using Jvm: $2"
  +
  +  InstallRetry:
  +  ClearErrors
  +  nsExec::ExecToLog '"$INSTDIR\bin\tomcat5.exe" //IS//Tomcat5 --DisplayName 
"Apache Tomcat" --Description "Apache Tomcat @VERSION@ Server - 
http://jakarta.apache.org/tomcat/"; --LogPath "$INSTDIR\logs" --Install 
"$INSTDIR\bin\tomcat5.exe" --Jvm "$2" --StartPath "$INSTDIR" --StopPath 
"$INSTDIR"'
  +  Pop $0
  +  StrCmp $0 "0" InstallOk
  +    MessageBox MB_ABORTRETRYIGNORE|MB_ICONSTOP \
  +      "Failed to install Tomcat5 service.$\r$\nCheck your settings and 
permissions$\r$\nIgnore and continue anyway (not recommended)?" \
  +       /SD IDIGNORE IDIGNORE InstallOk IDRETRY InstallRetry
  +  Quit
  +  InstallOk:
  +  ClearErrors
  +
  +SectionEnd
  +
  +Section "Service" SecTomcatService
  +
  +  SectionIn 3
  +
  +  IfSilent 0 +3
  +  Call findJavaPath
  +  Pop $2
  +
  +  IfSilent +2 0
  +  !insertmacro MUI_INSTALLOPTIONS_READ $2 "jvm.ini" "Field 2" "State"
  +
  +  StrCpy "$JavaHome" $2
  +  Call findJVMPath
  +  Pop $2
  +
  +  nsExec::ExecToLog '"$INSTDIR\bin\tomcat5.exe" //US//Tomcat5 --Startup auto'
  +  ; Bahave like Apache Httpd (put the icon in try on login)
  +  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Run" 
"ApacheTomcatMonitor" '"$INSTDIR\bin\tomcat5w.exe" //MS//Tomcat5'
  +
  +  ClearErrors
  +
  +SectionEnd
  +
  +;Section "Source Code" SecTomcatSource
  +;
  +;  SectionIn 3
  +;  SetOutPath $INSTDIR
  +;  File /r src
  +;
  +;SectionEnd
  +
  +SubSectionEnd
  +
  +Section "Start Menu Items" SecMenu
  +
  +  SectionIn 1 2 3
  +
  +  !insertmacro MUI_INSTALLOPTIONS_READ $2 "jvm.ini" "Field 2" "State"
  +
  +  SetOutPath "$SMPROGRAMS\Apache Tomcat 5.5"
  +
  +  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Tomcat Home Page.lnk" \
  +                 "http://jakarta.apache.org/tomcat";
  +
  +  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Welcome.lnk" \
  +                 "http://127.0.0.1:$R0/";
  +
  +;  IfFileExists "$INSTDIR\server\webapps\admin" 0 NoAdminApp
  +;
  +;  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Tomcat Administration.lnk" \
  +;                 "http://127.0.0.1:$R0/admin/";
  +;NoAdminApp:
  +
  +  IfFileExists "$INSTDIR\server\webapps\manager" 0 NoManagerApp
  +
  +  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Tomcat Manager.lnk" \
  +                 "http://127.0.0.1:$R0/manager/html";
  +
  +NoManagerApp:
  +
  +  IfFileExists "$INSTDIR\webapps\webapps\tomcat-docs" 0 NoDocumentaion
  +
  +  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Tomcat Documentation.lnk" \
  +                 "$INSTDIR\webapps\tomcat-docs\index.html"
  +
  +NoDocumentaion:
  +
  +  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Uninstall Tomcat 5.5.lnk" \
  +                 "$INSTDIR\Uninstall.exe"
  +
  +  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Tomcat 5.5 Program 
Directory.lnk" \
  +                 "$INSTDIR"
  +
  +  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Monitor Tomcat.lnk" \
  +                 "$INSTDIR\bin\tomcat5w.exe" \
  +                 '//MS//Tomcat5' \
  +                 "$INSTDIR\tomcat.ico" 0 SW_SHOWNORMAL
  +
  +  CreateShortCut "$SMPROGRAMS\Apache Tomcat 5.5\Configure Tomcat.lnk" \
  +                 "$INSTDIR\bin\tomcat5w.exe" \
  +                 '//ES//Tomcat5' \
  +                 "$INSTDIR\tomcat.ico" 0 SW_SHOWNORMAL
  +
  +SectionEnd
  +
  +Section "Documentation" SecDocs
  +
  +  SectionIn 1 3
  +  SetOutPath $INSTDIR\webapps
  +  File /r webapps\tomcat-docs
  +
  +SectionEnd
  +
  +Section "Examples" SecExamples
  +
  +  SectionIn 3
  +
  +  SetOverwrite on
  +  SetOutPath $INSTDIR\webapps
  +  File /r webapps\jsp-examples
  +  File /r webapps\servlets-examples
  +
  +SectionEnd
  +
  +;Section "Administration" SecAdmin
  +;
  +;  SectionIn 3
  +;
  +;  SetOutPath $INSTDIR\server\webapps
  +;  File /r server\webapps\admin
  +;  SetOutPath $INSTDIR\conf\Catalina\localhost
  +;  File conf\Catalina\localhost\admin.xml
  +;
  +;SectionEnd
  +
  +Section "Webapps" SecWebapps
  +
  +  SectionIn 3
  +
  +  SetOutPath $INSTDIR\webapps
  +  File /r webapps\balancer
  +  File /r webapps\webdav
  +
  +SectionEnd
  +
  +;Section "Compatibility" SecCompat
  +;
  +;  SetOutPath $INSTDIR
  +;  File /oname=bin\jmx.jar ..\compat\bin\jmx.jar
  +;  File /oname=common\endorsed\xercesImpl.jar 
..\compat\common\endorsed\xercesImpl.jar
  +;  File /oname=common\endorsed\xml-apis.jar  
..\compat\common\endorsed\xml-apis.jar
  +;
  +;SectionEnd
  +
  +Section -post
  +  nsExec::ExecToLog '"$INSTDIR\bin\tomcat5.exe" //US//Tomcat5 --Classpath 
"$INSTDIR\bin\bootstrap.jar" --StartClass org.apache.catalina.startup.Bootstrap 
--StopClass org.apache.catalina.startup.Bootstrap --StartParams start 
--StopParams stop  --StartMode jvm --StopMode jvm'
  +  nsExec::ExecToLog '"$INSTDIR\bin\tomcat5.exe" //US//Tomcat5 --JvmOptions 
"-Dcatalina.home=$INSTDIR#-Dcatalina.base=$INSTDIR#-Djava.endorsed.dirs=$INSTDIR\common\endorsed#-Djava.io.tmpdir=$INSTDIR\temp#-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager#-Djava.util.logging.config.file=${catalina.base}\conf\logging.properties"
 --StdOutput auto --StdError auto'
  +
  +  WriteUninstaller "$INSTDIR\Uninstall.exe"
  +
  +  WriteRegStr HKLM "SOFTWARE\Apache Software Foundation\Tomcat\5.5" 
"InstallPath" $INSTDIR
  +  WriteRegStr HKLM "SOFTWARE\Apache Software Foundation\Tomcat\5.5" 
"Version" @VERSION@
  +  WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\Apache Tomcat 5.5" \
  +                   "DisplayName" "Apache Tomcat 5.5 (remove only)"
  +  WriteRegStr HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\Apache Tomcat 5.5" \
  +                   "UninstallString" '"$INSTDIR\Uninstall.exe"'
  +
  +SectionEnd
  +
  +Function .onInit
  +
  +  ;Extract Install Options INI Files
  +  !insertmacro MUI_INSTALLOPTIONS_EXTRACT "config.ini"
  +  !insertmacro MUI_INSTALLOPTIONS_EXTRACT "jvm.ini"
  +
  +FunctionEnd
  +
  +Function SetChooseJVM
  +  !insertmacro MUI_HEADER_TEXT "$(TEXT_JVM_TITLE)" "$(TEXT_JVM_SUBTITLE)"
  +  Call findJavaPath
  +  Pop $3
  +  !insertmacro MUI_INSTALLOPTIONS_WRITE "jvm.ini" "Field 2" "State" $3
  +  !insertmacro MUI_INSTALLOPTIONS_DISPLAY "jvm.ini"
  +FunctionEnd
  +
  +Function SetConfiguration
  +  !insertmacro MUI_HEADER_TEXT "$(TEXT_CONF_TITLE)" "$(TEXT_CONF_SUBTITLE)"
  +  !insertmacro MUI_INSTALLOPTIONS_DISPLAY "config.ini"
  +FunctionEnd
  +
  +Function Void
  +FunctionEnd
  +
  +;--------------------------------
  +;Descriptions
  +
  +!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
  +  !insertmacro MUI_DESCRIPTION_TEXT ${SecTomcat} $(DESC_SecTomcat)
  +  !insertmacro MUI_DESCRIPTION_TEXT ${SecTomcatCore} $(DESC_SecTomcatCore)
  +  !insertmacro MUI_DESCRIPTION_TEXT ${SecTomcatService} 
$(DESC_SecTomcatService)
  +;  !insertmacro MUI_DESCRIPTION_TEXT ${SecTomcatSource} 
$(DESC_SecTomcatSource)
  +;  !insertmacro MUI_DESCRIPTION_TEXT ${SecCompat} $(DESC_SecCompat)
  +  !insertmacro MUI_DESCRIPTION_TEXT ${SecMenu} $(DESC_SecMenu)
  +  !insertmacro MUI_DESCRIPTION_TEXT ${SecDocs} $(DESC_SecDocs)
  +  !insertmacro MUI_DESCRIPTION_TEXT ${SecExamples} $(DESC_SecExamples)
  +;  !insertmacro MUI_DESCRIPTION_TEXT ${SecAdmin} $(DESC_SecAdmin)
  +  !insertmacro MUI_DESCRIPTION_TEXT ${SecWebapps} $(DESC_SecWebapps)
  +!insertmacro MUI_FUNCTION_DESCRIPTION_END
  +
  +
  +; =====================
  +; CheckUserType Function
  +; =====================
  +;
  +; Check the user type, and warn if it's not an administrator.
  +; Taken from Examples/UserInfo that ships with NSIS.
  +Function CheckUserType
  +  ClearErrors
  +  UserInfo::GetName
  +  IfErrors Win9x
  +  Pop $0
  +  UserInfo::GetAccountType
  +  Pop $1
  +  StrCmp $1 "Admin" 0 +3
  +    ; This is OK, do nothing
  +    Goto done
  +
  +    MessageBox MB_OK|MB_ICONEXCLAMATION 'Note: the current user is not an 
administrator. \
  +               To run Tomcat as a Windows service, you must be an 
administrator. \
  +               You can still run Tomcat from the command-line as this type 
of user.'
  +    Goto done
  +
  +  Win9x:
  +    # This one means you don't need to care about admin or
  +    # not admin because Windows 9x doesn't either
  +    MessageBox MB_OK "Error! This DLL can't run under Windows 9x!"
  +
  +  done:
  +FunctionEnd
  +
  +
  +; =====================
  +; FindJavaPath Function
  +; =====================
  +;
  +; Find the JAVA_HOME used on the system, and put the result on the top of the
  +; stack
  +; Will return an empty string if the path cannot be determined
  +;
  +Function findJavaPath
  +
  +  ;ClearErrors
  +
  +  ;ReadEnvStr $1 JAVA_HOME
  +
  +  ;IfErrors 0 FoundJDK
  +
  +  ClearErrors
  +
  +  ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" 
"CurrentVersion"
  +  ReadRegStr $1 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment\$2" 
"JavaHome"
  +  ReadRegStr $3 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment\$2" 
"RuntimeLib"
  +
  +  ;FoundJDK:
  +
  +  IfErrors 0 NoErrors
  +  StrCpy $1 ""
  +
  +NoErrors:
  +
  +  ClearErrors
  +
  +  ; Put the result in the stack
  +  Push $1
  +
  +FunctionEnd
  +
  +
  +; ====================
  +; FindJVMPath Function
  +; ====================
  +;
  +; Find the full JVM path, and put the result on top of the stack
  +; Argument: JVM base path (result of findJavaPath)
  +; Will return an empty string if the path cannot be determined
  +;
  +Function findJVMPath
  +
  +  ClearErrors
  +  
  +  ;Step one: Is this a JRE path (Program Files\Java\XXX)
  +  StrCpy $1 "$JavaHome"
  +  
  +  StrCpy $2 "$1\bin\hotspot\jvm.dll"
  +  IfFileExists "$2" FoundJvmDll
  +  StrCpy $2 "$1\bin\server\jvm.dll"
  +  IfFileExists "$2" FoundJvmDll
  +  StrCpy $2 "$1\bin\client\jvm.dll"  
  +  IfFileExists "$2" FoundJvmDll
  +  StrCpy $2 "$1\bin\classic\jvm.dll"
  +  IfFileExists "$2" FoundJvmDll
  +
  +  ;Step two: Is this a JDK path (Program Files\XXX\jre)
  +  StrCpy $1 "$JavaHome\jre"
  +  
  +  StrCpy $2 "$1\bin\hotspot\jvm.dll"
  +  IfFileExists "$2" FoundJvmDll
  +  StrCpy $2 "$1\bin\server\jvm.dll"
  +  IfFileExists "$2" FoundJvmDll
  +  StrCpy $2 "$1\bin\client\jvm.dll"  
  +  IfFileExists "$2" FoundJvmDll
  +  StrCpy $2 "$1\bin\classic\jvm.dll"
  +  IfFileExists "$2" FoundJvmDll
  +
  +  ClearErrors
  +  ;Step tree: Read defaults from registry
  +  
  +  ReadRegStr $1 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" 
"CurrentVersion"
  +  ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment\$1" 
"RuntimeLib"
  +  
  +  IfErrors 0 FoundJvmDll
  +  StrCpy $2 ""
  +
  +  FoundJvmDll:
  +  ClearErrors
  +
  +  ; Put the result in the stack
  +  Push $2
  +
  +FunctionEnd
  +
  +
  +; ====================
  +; CheckJvm Function
  +; ====================
  +;
  +Function checkJvm
  +
  +  !insertmacro MUI_INSTALLOPTIONS_READ $3 "jvm.ini" "Field 2" "State"
  +  IfFileExists "$3\bin\java.exe" NoErrors1
  +  MessageBox MB_OK|MB_ICONSTOP "No Java Virtual Machine found in 
folder:$\r$\n$3"
  +  Quit
  +NoErrors1:
  +  StrCpy "$JavaHome" $3
  +  Call findJVMPath
  +  Pop $4
  +  StrCmp $4 "" 0 NoErrors2
  +  MessageBox MB_OK|MB_ICONSTOP "No Java Virtual Machine found in 
folder:$\r$\n$3"
  +  Quit
  +NoErrors2:
  +
  +FunctionEnd
  +
  +; ==================
  +; Configure Function
  +; ==================
  +;
  +; Display the configuration dialog boxes, read the values entered by the 
user,
  +; and build the configuration files
  +;
  +Function configure
  +
  +  !insertmacro MUI_INSTALLOPTIONS_READ $R0 "config.ini" "Field 2" "State"
  +  !insertmacro MUI_INSTALLOPTIONS_READ $R1 "config.ini" "Field 5" "State"
  +  !insertmacro MUI_INSTALLOPTIONS_READ $R2 "config.ini" "Field 7" "State"
  +
  +  IfSilent 0 +2
  +  StrCpy $R4 'port="8080"'
  +
  +  IfSilent +2 0
  +  StrCpy $R4 'port="$R0"'
  +
  +  IfSilent 0 +2
  +  StrCpy $R5 ''
  +
  +  IfSilent Silent 0
  +
  +  ; Escape XML
  +  Push $R1
  +  Call xmlEscape
  +  Pop $R1
  +  Push $R2
  +  Call xmlEscape
  +  Pop $R2
  +  
  +  StrCpy $R5 '<user name="$R1" password="$R2" roles="admin,manager" />'
  +
  +Silent:
  +  DetailPrint 'HTTP/1.1 Connector configured on port "$R0"'
  +  DetailPrint 'Admin user added: "$R1"'
  +
  +  SetOutPath $TEMP
  +  File /r confinstall
  +
  +  ; Build final server.xml
  +  Delete "$INSTDIR\conf\server.xml"
  +  FileOpen $R9 "$INSTDIR\conf\server.xml" w
  +
  +  Push "$TEMP\confinstall\server_1.xml"
  +  Call copyFile
  +  FileWrite $R9 $R4
  +  Push "$TEMP\confinstall\server_2.xml"
  +  Call copyFile
  +
  +  FileClose $R9
  +
  +  DetailPrint "server.xml written"
  +
  +  ; Build final tomcat-users.xml
  +  
  +  Delete "$INSTDIR\conf\tomcat-users.xml"
  +  FileOpen $R9 "$INSTDIR\conf\tomcat-users.xml" w
  +
  +  Push "$TEMP\confinstall\tomcat-users_1.xml"
  +  Call copyFile
  +  FileWrite $R9 $R5
  +  Push "$TEMP\confinstall\tomcat-users_2.xml"
  +  Call copyFile
  +
  +  FileClose $R9
  +
  +  DetailPrint "tomcat-users.xml written"
  +
  +  RMDir /r "$TEMP\confinstall"
  +
  +FunctionEnd
  +
  +
  +Function xmlEscape
  +  Pop $0
  +  ${StrRep} $0 $0 "&" "&amp;"
  +  ${StrRep} $0 $0 "$\"" "&quot;"
  +  ${StrRep} $0 $0 "<" "&lt;"
  +  ${StrRep} $0 $0 ">" "&gt;"
  +  Push $0
  +FunctionEnd
  +
  +
  +; =================
  +; CopyFile Function
  +; =================
  +;
  +; Copy specified file contents to $R9
  +;
  +Function copyFile
  +
  +  ClearErrors
  +
  +  Pop $0
  +
  +  FileOpen $1 $0 r
  +
  + NoError:
  +
  +  FileRead $1 $2
  +  IfErrors EOF 0
  +  FileWrite $R9 $2
  +
  +  IfErrors 0 NoError
  +
  + EOF:
  +
  +  FileClose $1
  +
  +  ClearErrors
  +
  +FunctionEnd
  +
  +
  +;--------------------------------
  +;Uninstaller Section
  +
  +Section Uninstall
  +
  +  Delete "$INSTDIR\modern.exe"
  +  Delete "$INSTDIR\Uninstall.exe"
  +
  +  ; Stop Tomcat service monitor if running
  +  nsExec::ExecToLog '"$INSTDIR\bin\tomcat5w.exe" //MQ//Tomcat5'
  +  ; Delete Tomcat service
  +  nsExec::ExecToLog '"$INSTDIR\bin\tomcat5.exe" //DS//Tomcat5'
  +  ClearErrors
  +
  +  DeleteRegKey HKCR "JSPFile"
  +  DeleteRegKey HKLM 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\Apache Tomcat 5.5"
  +  DeleteRegKey HKLM "SOFTWARE\Apache Software Foundation\Tomcat\5.5"
  +  DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Run" 
"ApacheTomcatMonitor"
  +  RMDir /r "$SMPROGRAMS\Apache Tomcat 5.5"
  +  Delete "$INSTDIR\tomcat.ico"
  +  Delete "$INSTDIR\LICENSE"
  +  RMDir /r "$INSTDIR\bin"
  +  RMDir /r "$INSTDIR\common"
  +  Delete "$INSTDIR\conf\*.dtd"
  +  RMDir /r "$INSTDIR\shared"
  +  RMDir "$INSTDIR\logs"
  +  RMDir /r "$INSTDIR\server"
  +  RMDir /r "$INSTDIR\webapps\balancer"
  +  RMDir /r "$INSTDIR\webapps\tomcat-docs"
  +  RMDir /r "$INSTDIR\webapps\servlets-examples"
  +  RMDir /r "$INSTDIR\webapps\jsp-examples"
  +  RMDir /r "$INSTDIR\webapps\webdav"
  +  RMDir /r "$INSTDIR\work"
  +  RMDir /r "$INSTDIR\temp"
  +  RMDir /r "$INSTDIR\src"
  +  RMDir "$INSTDIR"
  +
  +  IfSilent Removed 0
  +
  +  ; if $INSTDIR was removed, skip these next ones
  +  IfFileExists "$INSTDIR" 0 Removed 
  +    MessageBox MB_YESNO|MB_ICONQUESTION \
  +      "Remove all files in your Tomcat 5.5 directory? (If you have anything  
\
  + you created that you want to keep, click No)" IDNO Removed
  +    RMDir /r "$INSTDIR\webapps\ROOT" ; this would be skipped if the user 
hits no
  +    RMDir "$INSTDIR\webapps"
  +    Delete "$INSTDIR\*.*" 
  +    RMDir /r "$INSTDIR"
  +    Sleep 500
  +    IfFileExists "$INSTDIR" 0 Removed 
  +      MessageBox MB_OK|MB_ICONEXCLAMATION \
  +                 "Note: $INSTDIR could not be removed."
  +  Removed:
  +
  +SectionEnd
  +
  +;eof
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to