altos-fat/windows: Check and install Java 1.6 as needed
authorKeith Packard <keithp@keithp.com>
Mon, 22 Aug 2011 05:12:04 +0000 (22:12 -0700)
committerKeith Packard <keithp@keithp.com>
Tue, 23 Aug 2011 00:20:06 +0000 (17:20 -0700)
Signed-off-by: Keith Packard <keithp@keithp.com>
altosui/altos-windows.nsi

index 7c9b7a2..70dc03c 100644 (file)
@@ -1,4 +1,8 @@
 !addplugindir Instdrv/NSIS/Plugins
+; Definitions for Java 1.6 Detection
+!define JRE_VERSION "1.6"
+!define JRE_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=18714&/jre-6u5-windows-i586-p.exe"
+!define PRODUCT_NAME "Altus Metrum Windows Software"
 
 Name "Altus Metrum Installer"
 
@@ -18,6 +22,31 @@ ShowInstDetails Show
 
 ComponentText "Altus Metrum Software and Driver Installer"
 
+Function GetJRE
+        MessageBox MB_OK "${PRODUCT_NAME} uses Java ${JRE_VERSION}, it will now \
+                         be downloaded and installed"
+
+        StrCpy $2 "$TEMP\Java Runtime Environment.exe"
+        nsisdl::download /TIMEOUT=30000 ${JRE_URL} $2
+        Pop $R0 ;Get the return value
+                StrCmp $R0 "success" +3
+                MessageBox MB_OK "Download failed: $R0"
+                Quit
+        ExecWait $2
+        Delete $2
+FunctionEnd
+
+
+Function DetectJRE
+  ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" \
+             "CurrentVersion"
+  StrCmp $2 ${JRE_VERSION} done
+
+  Call GetJRE
+
+  done:
+FunctionEnd
+
 ; Pages to present
 
 Page license
@@ -51,6 +80,8 @@ Section "Install Driver" InstDriver
 SectionEnd
 
 Section "AltosUI Application"
+       Call DetectJRE
+
        SetOutPath $INSTDIR
 
        File "altosui-fat.jar"
@@ -68,7 +99,7 @@ Section "AltosUI Application"
 
        File "../icon/*.ico"
 
-       CreateShortCut "$SMPROGRAMS\AltusMetrum.lnk" "$INSTDIR\altosui-fat.jar" "" "$INSTDIR\altus-metrum.ico"
+       CreateShortCut "$SMPROGRAMS\AltusMetrum.lnk" "$SYSDIR\javaw.exe" "-jar altosui-fat.jar" "$INSTDIR\altus-metrum.ico"
 SectionEnd
 
 Section "AltosUI Desktop Shortcut"
@@ -99,12 +130,12 @@ SectionEnd
 Section "Uninstaller"
 
        ; Deal with the uninstaller
-       
+
        SetOutPath $INSTDIR
 
        ; Write the install path to the registry
        WriteRegStr HKLM SOFTWARE\AltusMetrum "Install_Dir" "$INSTDIR"
-       
+
        ; Write the uninstall keys for windows
        WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AltusMetrum" "DisplayName" "Altus Metrum"
        WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\AltusMetrum" "UninstallString" '"$INSTDIR\uninstall.exe"'