; ///////////////////////////////////////////////////////////////////////////////
; // 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
;Web-Site
!define MyWebSite "http://mulder.at.gg/"
+;Installer file name
+!define InstallerFileName "$PLUGINSDIR\LameXP-SETUP-r${LAMEXP_BUILD}.exe"
;--------------------------------
;Includes
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 ""
ReserveFile "${NSISDIR}\Plugins\System.dll"
ReserveFile "${NSISDIR}\Plugins\StdUtils.dll"
+ReserveFile "${NSISDIR}\Plugins\SelfDel.dll"
;--------------------------------
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}"
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"
; --------
- 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
; --------
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