OSDN Git Service

Small installer tweak.
[lamexp/LameXP.git] / etc / NSIS / wrapper.nsi
index fa7920e..a7fd428 100644 (file)
@@ -1,6 +1,6 @@
 ; ///////////////////////////////////////////////////////////////////////////////
 ; // LameXP - Audio Encoder Front-End
-; // Copyright (C) 2004-2012 LoRd_MuldeR <MuldeR2@GMX.de>
+; // Copyright (C) 2004-2015 LoRd_MuldeR <MuldeR2@GMX.de>
 ; //
 ; // This program is free software; you can redistribute it and/or modify
 ; // it under the terms of the GNU General Public License as published by
@@ -51,6 +51,8 @@
 ;Web-Site
 !define MyWebSite "http://mulder.at.gg/"
 
+;Installer file name
+!define InstallerFileName "$PLUGINSDIR\LameXP-SETUP-r${LAMEXP_BUILD}.exe"
 
 ;--------------------------------
 ;Includes
@@ -72,7 +74,7 @@ OutFile "${LAMEXP_OUTPUT_FILE}"
 BrandingText "${LAMEXP_DATE} / Build #${LAMEXP_BUILD}"
 Icon "${NSISDIR}\Contrib\Graphics\Icons\orange-install.ico"
 ChangeUI all "${NSISDIR}\Contrib\UIs\sdbarker_tiny.exe"
-ShowInstDetails show
+ShowInstDetails nevershow
 AutoCloseWindow true
 InstallDir ""
 
@@ -101,6 +103,7 @@ SubCaption 4 " "
 
 ReserveFile "${NSISDIR}\Plugins\System.dll"
 ReserveFile "${NSISDIR}\Plugins\StdUtils.dll"
+ReserveFile "${NSISDIR}\Plugins\SelfDel.dll"
 
 
 ;--------------------------------
@@ -115,9 +118,9 @@ VIAddVersionKey "Comments" "This program is free software; you can redistribute
 VIAddVersionKey "CompanyName" "Free Software Foundation"
 VIAddVersionKey "FileDescription" "LameXP v${LAMEXP_VERSION} ${LAMEXP_INSTTYPE}-${LAMEXP_PATCH} [Build #${LAMEXP_BUILD}]"
 VIAddVersionKey "FileVersion" "${PRODUCT_VERSION_DATE}.${LAMEXP_BUILD} (${LAMEXP_VERSION})"
-VIAddVersionKey "LegalCopyright" "Copyright 2004-2012 LoRd_MuldeR"
+VIAddVersionKey "LegalCopyright" "Copyright 2004-2015 LoRd_MuldeR"
 VIAddVersionKey "LegalTrademarks" "GNU"
-VIAddVersionKey "OriginalFilename" "LameXP.${LAMEXP_DATE}.exe"
+VIAddVersionKey "OriginalFilename" "LameXP.${LAMEXP_DATE}.Build-${LAMEXP_BUILD}.exe"
 VIAddVersionKey "ProductName" "LameXP - Audio Encoder Frontend"
 VIAddVersionKey "ProductVersion" "${LAMEXP_VERSION}, Build #${LAMEXP_BUILD} (${LAMEXP_DATE})"
 VIAddVersionKey "Website" "${MyWebSite}"
@@ -134,8 +137,16 @@ Section "-LaunchTheInstaller"
        
        InitPluginsDir
        SetOutPath "$PLUGINSDIR"
-       File "/oname=$PLUGINSDIR\LameXP-SETUP.${LAMEXP_DATE}.${LAMEXP_BUILD}.exe" "${LAMEXP_SOURCE_FILE}"
        
+       ${StdUtils.TestParameter} $R0 "Update"
+       ${If} "$R0" == "true"
+               SetFileAttributes "$EXEPATH" FILE_ATTRIBUTE_NORMAL
+               SelfDel::del /RMDIR
+       ${EndIf}
+       
+       SetOverwrite on
+       File "/oname=${InstallerFileName}" "${LAMEXP_SOURCE_FILE}"
+
        ; --------
        
        ${If} "$EXEFILE" == "LameXP.exe"
@@ -155,33 +166,42 @@ Section "-LaunchTheInstaller"
 
        ; --------
 
-       RunTryAgain:
-       
-       DetailPrint "ExecShellWait: $PLUGINSDIR\LameXP-Install.exe"
-       ${StdUtils.ExecShellWait} $R1 "$PLUGINSDIR\LameXP-Install.exe" "open" '$R9'
-       DetailPrint "Result: $R1"
+       ${Do}
+               SetOverwrite ifdiff
+               File "/oname=${InstallerFileName}" "${LAMEXP_SOURCE_FILE}"
+               
+               DetailPrint "ExecShellWait: ${InstallerFileName}"
+               ${StdUtils.ExecShellWaitEx} $R1 $R2 "${InstallerFileName}" "open" '$R9'
+               DetailPrint "Result: $R1 ($R2)"
+               
+               ${IfThen} $R1 == "no_wait" ${|} Goto RunSuccess ${|}
+               
+               ${If} $R1 == "ok"
+                       Sleep 333
+                       HideWindow
+                       ${StdUtils.WaitForProcEx} $R1 $R2
+                       Goto RunSuccess
+               ${EndIf}
+               
+               MessageBox MB_RETRYCANCEL|MB_ICONSTOP|MB_TOPMOST "Failed to launch the installer. Please try again!" IDCANCEL FallbackMode
+       ${Loop}
        
-       StrCmp $R1 "error" RunFailed
-       StrCmp $R1 "no_wait" RunSuccess
-       Sleep 333
-       HideWindow
-       ${StdUtils.WaitForProc} $R1
-       Goto RunSuccess
-       
-       ; --------
 
-       RunFailed:
+       ; -----------
 
-       MessageBox MB_RETRYCANCEL|MB_ICONSTOP|MB_TOPMOST "Failed to launch the installer. Please try again!" IDRETRY RunTryAgain
+       FallbackMode:
 
-       ; --------
+       DetailPrint "Installer not launched yet, trying fallback mode!"
+
+       SetOverwrite ifdiff
+       File "/oname=${InstallerFileName}" "${LAMEXP_SOURCE_FILE}"
 
        ClearErrors
-       ExecShell "open" "$PLUGINSDIR\LameXP-Install.exe" '$R9' SW_SHOWNORMAL
+       ExecShell "open" "${InstallerFileName}" '$R9' SW_SHOWNORMAL
        IfErrors 0 RunSuccess
 
        ClearErrors
-       ExecShell "" "$PLUGINSDIR\LameXP-Install.exe" '$R9' SW_SHOWNORMAL
+       ExecShell "" "${InstallerFileName}" '$R9' SW_SHOWNORMAL
        IfErrors 0 RunSuccess
 
        ; --------
@@ -190,11 +210,15 @@ Section "-LaunchTheInstaller"
        DetailPrint "Failed to launch installer :-("
        SetDetailsPrint listonly
 
+       SetErrorLevel 1
+       SetOutPath "$TEMP"
        Abort "Aborted."
 
        ; --------
        
        RunSuccess:
 
-       Delete /REBOOTOK "$PLUGINSDIR\LameXP-Install.exe"
-SectionEnd
\ No newline at end of file
+       Delete /REBOOTOK "${InstallerFileName}"
+       SetErrorLevel 0
+       SetOutPath "$TEMP"
+SectionEnd