; Script generated by the HM NIS Edit Script Wizard. SetCompressor bzip2 ; HM NIS Edit Wizard helper defines !define PRODUCT_NAME "Tamino WebDAV Server ${PRODUCT_VERSION}" !define PRODUCT_PUBLISHER "Jakarta Slide" !define PRODUCT_WEB_SITE "http://jakarta.apache.org/slide" !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" !define PRODUCT_UNINST_ROOT_KEY "HKLM" ;todo:try to delete !define NO_JAVA "No Java Virtual Machine found. Please define an environment variable JAVA_HOME pointing to your Java installation and re-run the installer." !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\makensis.exe" ; MUI 1.67 compatible ------ !include "MUI.nsh" ; MUI Settings !define MUI_ABORTWARNING !define MUI_ICON "..\..\build\tree\WebDAV.ico" !define MUI_UNICON "..\..\build\tree\WebDAV.ico" ; Welcome page !insertmacro MUI_PAGE_WELCOME ; License page !define MUI_LICENSEPAGE_CHECKBOX !insertmacro MUI_PAGE_LICENSE "..\..\build\tree\LICENSE" ; Directory page !insertmacro MUI_PAGE_DIRECTORY ; Instfiles page !insertmacro MUI_PAGE_INSTFILES ; Finish page !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\readme.txt" !insertmacro MUI_PAGE_FINISH ; Uninstaller pages !insertmacro MUI_UNPAGE_INSTFILES ; Language files !insertmacro MUI_LANGUAGE "English" !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS ; MUI end ------ Name "${PRODUCT_NAME}" OutFile "..\..\build\setup.exe" InstallDir "$PROGRAMFILES\${PRODUCT_NAME}" InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" "" ShowInstDetails show ShowUnInstDetails show Section "Hauptgruppe" SEC01 Call checkJvm Pop $1 SetOutPath "$INSTDIR" SetOverwrite ifnewer CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}" SetOutPath "$INSTDIR\bin" CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Console.lnk" $WINDIR\system32\CMD.EXE '/k set JAVA_HOME=$1&& inodavserver.cmd -tools' $INSTDIR\WebDAV.ico CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Run.lnk" $WINDIR\system32\CMD.EXE '/c set JAVA_HOME=$1&& inodavserver.cmd run' $INSTDIR\WebDAV.ico CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Browse.lnk" "http://localhost:8080/taminowebdavserver" CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Readme.lnk" "$INSTDIR\readme.txt" CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Documentation.lnk" "$INSTDIR\doc\overview.htm" CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Homepage.lnk" "${PRODUCT_WEB_SITE}" ; TODO WriteIniStr "$INSTDIR\console.url" "JPL Console" "URL" "${PRODUCT_WEB_SITE}" ; CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\console.url" "${PRODUCT_WEB_SITE}" SetOutPath "$INSTDIR" File /r "..\..\build\tree\*.*" SectionEnd Section -Post WriteUninstaller "$INSTDIR\uninst.exe" WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\makensis.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\makensis.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}" SectionEnd Function un.onUninstSuccess HideWindow MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) uninstalled successfully." FunctionEnd Function un.onInit MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Do you want to uninstall $(^Name)? Caution: This will completely remove the install directory." IDYES +2 Abort FunctionEnd Section Uninstall RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}" RMDir /r "$INSTDIR" DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}" SetAutoClose true SectionEnd ; ===================== ; 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 StrCmp $1 "" 0 NoErrors MessageBox MB_OK "${NO_JAVA}" Quit NoErrors: ClearErrors ; Put the result in the stack Push $1 FunctionEnd ; ==================== ; CheckJvm Function ; ==================== ; Function checkJvm call findJavaPath Pop $3 IfFileExists "$3\bin\java.exe" NoErrors1 MessageBox MB_OK "${NO_JAVA}" Quit NoErrors1: ; dummy Push $3 Call findJVMPath Pop $4 StrCmp $4 "" 0 NoErrors2 MessageBox MB_OK "${NO_JAVA}" Quit NoErrors2: 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 Pop $1 IfFileExists "$1\jre\bin\hotspot\jvm.dll" 0 TryJDK14 StrCpy $2 "$1\jre\bin\hotspot\jvm.dll" Goto EndIfFileExists TryJDK14: IfFileExists "$1\jre\bin\server\jvm.dll" 0 TryClassic StrCpy $2 "$1\jre\bin\server\jvm.dll" Goto EndIfFileExists TryClassic: IfFileExists "$1\jre\bin\classic\jvm.dll" 0 JDKNotFound StrCpy $2 "$1\jre\bin\classic\jvm.dll" Goto EndIfFileExists JDKNotFound: SetErrors EndIfFileExists: IfErrors 0 FoundJVMPath ClearErrors ReadRegStr $1 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" "CurrentVersion" ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment\$1" "RuntimeLib" FoundJVMPath: IfErrors 0 NoErrors StrCpy $2 "" NoErrors: ClearErrors ; Put the result in the stack Push $2 FunctionEnd