summaryrefslogtreecommitdiff
path: root/build.nsi
diff options
context:
space:
mode:
Diffstat (limited to 'build.nsi')
-rwxr-xr-xbuild.nsi82
1 files changed, 47 insertions, 35 deletions
diff --git a/build.nsi b/build.nsi
index d83a7e35c..4d5215555 100755
--- a/build.nsi
+++ b/build.nsi
@@ -51,8 +51,6 @@ SetCompressor /SOLID LZMA
; http://www.java.com/de/download/manual.jsp BundleId +1 / +2
!define JRE_VERSION6 "1.6"
-;!define JRE_32 "http://javadl.sun.com/webapps/download/AutoDL?BundleId=37718" ;jre-6u18-windows-i586.exe
-;!define JRE_64 "http://javadl.sun.com/webapps/download/AutoDL?BundleId=37401" ;jre-6u18-windows-x64.exe
!define JRE_32 "http://yacy.berlios.de/download.php?what=jre&version=32&yacyrevnr=@REPL_REVISION_NR@"
!define JRE_64 "http://yacy.berlios.de/download.php?what=jre&version=64&yacyrevnr=@REPL_REVISION_NR@"
@@ -143,8 +141,8 @@ Section "YaCy"
SetOutPath $INSTDIR
;set noindex attribute for windows indexing service
- Exec 'attrib +I "$INSTDIR"'
- Exec 'attrib +I "$INSTDIR\*" /S /D'
+ nsExec::Exec 'attrib +I "$INSTDIR"'
+ nsExec::Exec 'attrib +I "$INSTDIR\*" /S /D'
File /r "RELEASE\MAIN\*"
@@ -153,10 +151,10 @@ Section "YaCy"
WriteUninstaller "uninstall.exe"
SectionEnd
-Section "Sun Java"
- SectionIn 1 RO
- SetShellVarContext current
- Call DetectJRE
+Section "Sun Java" Sec_Java_id
+ SectionIn 1 RO
+ SetShellVarContext current
+ Call GetJRE
SectionEnd
Section "Start Menu Group"
@@ -193,7 +191,7 @@ Section "Uninstall"
SetShellVarContext current
RMDir /r "$INSTDIR\addon"
- RMDir /r "$INSTDIR\bin"
+ RMDir /r "$INSTDIR\bin"
RMDir /r "$INSTDIR\classes"
RMDir /r "$INSTDIR\defaults"
RMDir /r "$INSTDIR\htroot"
@@ -223,44 +221,57 @@ SectionEnd
; ----------------------------------------
; FUNCTIONS
+Function .onInit
+; Detect JRE first
+ var /global InstalledJREVersion
+ ${If} ${RunningX64}
+ SetRegView 64
+ ${EndIf}
+ ReadRegStr $InstalledJREVersion HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" "CurrentVersion"
+; If right JRE already installed hide JRE section
+ ${If} $InstalledJREVersion = ${JRE_VERSION6}
+ SectionSetText ${Sec_Java_id} ""
+ ${EndIf}
+FunctionEnd
+
Function GetJRE
+; Skip if JRE already installed
+ ${If} $InstalledJREVersion = ${JRE_VERSION6}
+ Return
+ ${EndIf}
; based on http://nsis.sourceforge.net/Simple_Java_Runtime_Download_Script
- ${If} ${RunningX64}
- StrCpy $3 ${JRE_64}
- ${Else}
- StrCpy $3 ${JRE_32}
- ${EndIf}
-
+ ${If} ${RunningX64}
+ StrCpy $3 ${JRE_64}
+ ${Else}
+ StrCpy $3 ${JRE_32}
+ ${EndIf}
+
+;check if admin before download, advise if non
userInfo::getAccountType
Pop $0
- StrCmp $0 "Admin" download ; download without message if admin
+
+ ${If} $0 != "Admin"
MessageBox MB_ICONEXCLAMATION "$(noAdminForJava)" /SD IDOK
- download:
+ ${EndIf}
+
SetShellVarContext all
StrCpy $2 "$DOCUMENTS\Java Runtime (install for YaCy).exe"
SetShellVarContext current
nsisdl::download /TIMEOUT=30000 $3 $2
Pop $R0 ;Get the return value
- StrCmp $R0 "success" +3
+
+ ${If} $R0 != "success"
MessageBox MB_OK "Download failed: $R0" /SD IDOK
Return
- StrCmp $0 "Admin" install ; install if admin
- CreateShortCut "$DESKTOP\Install Java for YaCy.lnk" "$2"
- Return ; don't delete if not admin
- install:
- ExecWait "$2 /s"
- Delete $2
-FunctionEnd
+ ${EndIf}
-Function DetectJRE
- ${If} ${RunningX64}
- SetRegView 64
+ ${If} $0 == "Admin"
+ ExecWait "$2 /s"
+ Delete $2
+ ${Else}
+ CreateShortCut "$DESKTOP\Install Java for YaCy.lnk" "$2"
${EndIf}
- ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" "CurrentVersion"
- StrCmp $2 ${JRE_VERSION6} doneDetectJRE
- Call GetJRE
- doneDetectJRE:
FunctionEnd
Function CheckDriveSpace
@@ -313,8 +324,9 @@ FunctionEnd
Function CheckDriveType
; based on http://nsis.sourceforge.net/GetDrives
- StrCmp $9 $RootFolder 0 +3
- StrCpy $RootFolderType $8
- StrCpy $0 StopGetDrives
+ ${If} $9 == $RootFolder
+ StrCpy $RootFolderType $8
+ StrCpy $0 StopGetDrives
+ ${EndIf}
Push $0
FunctionEnd