out_moya.nsi 6.06 KB
; NSIS script - ONLY for use with AutoPublish/AutoUpdate system

; //keitsi



;--------------------------------

;Include Modern UI



  !include "MUI.nsh"



;--------------------------------

;Configuration

  SetCompressor lzma



  Name "MoyaPrintServer moya v1_00_25"

  ; DO NOT CHANGE OutFile "installer_temp.exe" !!! AutoPublish requires this.

  ; AutoPublish will move the installer according to autopublish.xml file.

  OutFile "installer_temp.exe"

  

  ;Folder selection page

  ; InstallDir "$PROGRAMFILES\MoyaPrintServer_moya"

  

  ShowInstDetails show



;--------------------------------

;Interface Settings



  !define MUI_ABORTWARNING



;--------------------------------

;Pages



  ; !insertmacro MUI_PAGE_LICENSE "license.txt"

  !insertmacro MUI_PAGE_COMPONENTS

  !insertmacro MUI_PAGE_DIRECTORY

  !insertmacro MUI_PAGE_INSTFILES



  ; !define MUI_FINISHPAGE_RUN $INSTDIR\moyaPrintServer.exe

  !insertmacro MUI_PAGE_FINISH



  !insertmacro MUI_UNPAGE_CONFIRM

  !insertmacro MUI_UNPAGE_INSTFILES



;--------------------------------

;Languages

 

  !insertmacro MUI_LANGUAGE "English"



;--------------------------------

;Installer Sections



Function GetDotNet

  IfFileExists "$WINDIR\Microsoft.NET\Framework\v2.0.50727\installUtil.exe" NextStep

  MessageBox MB_OK|MB_ICONEXCLAMATION "You must have the Microsoft .NET Framework 2.0 Installed to use this application. $\n$\nClick 'Open' in the following file dialog to download and run the Microsoft .NET Framework Installer..."

  ExecShell Open "http://www.microsoft.com/downloads/info.aspx?na=90&p=&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=0856eacb-4362-4b0d-8edd-aab15c5e04f5&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2f5%2f6%2f7%2f567758a3-759e-473e-bf8f-52154438565a%2fdotnetfx.exe" SW_SHOWNORMAL

  Quit

NextStep:

FunctionEnd



Function .onInit

; Uber users are so uber that they do not need checks ;)

;  Call GetDotNet

  Call DetectInstallDir

FunctionEnd



Function DetectInstallDir

  ;Try to get install folder from obsoleted registry key first, if available

  ClearErrors

  ReadRegStr $INSTDIR HKCU "Software\MoyaPrintServer" ""

  IfErrors 0 instdirfound

  ClearErrors

  ; No obsoleted regkey present, try to read the correct one

  ReadRegStr $INSTDIR HKCU "Software\MoyaPrintServer_moya" ""

  IfErrors 0 instdirfound

  ClearErrors

  ; No installation dir regkey present at all - use default installation directory.

  StrCpy $INSTDIR "$PROGRAMFILES\MoyaPrintServer_moya"

instdirfound:

FunctionEnd



Function .onInstSuccess

	Exec '"$INSTDIR\moyaPrintServer.exe"'

FunctionEnd



Function WaitProgramClose

	IfFileExists "$INSTDIR\moyaPrintServer.exe" loop NotInstalled

loop:

	ClearErrors

	Delete "$INSTDIR\moyaPrintServer.exe"

	${If} ${Errors}

		; Delete failed - means the program is still running. Sleep 2 seconds and retry.

		Sleep 3000

		ClearErrors

		Delete "$INSTDIR\moyaPrintServer.exe"

		${If} ${Errors}

			MessageBox MB_OK "Program moyaPrintServer.exe didn't close in 2 seconds. Automatic update can't continue before it's closed. Please close the program manually and hit OK to retry."

			goto loop

		${EndIf}

	${EndIf}

NotInstalled:

FunctionEnd



Section "!MoyaPrintServer moya stable v1_00_25" SecMain

  SetShellVarContext current

  SetOutPath "$INSTDIR"

  Call WaitProgramClose

  ; SetOverwrite Off

  

  SetOverwrite On

  File /oname=autoupdate.xml "I:\devel\proj\moya-info-tools\PrintServer\moyaPrintServer\moyaPrintServer\bin\Release\autoupdate.moya.xml"

  File /oname=moyaPrintServer.exe "I:\devel\proj\moya-info-tools\PrintServer\moyaPrintServer\moyaPrintServer\bin\Release\moyaPrintServer.exe"

  File autoupdate.crt



  ; this line will be replicated for every non-default existing assembly

  ; that is referenced to the main project.

  File "I:\devel\proj\moya-info-tools\PrintServer\moyaPrintServer\moyaPrintServer\bin\Release\AutoUpdateLib.dll"

  File "I:\devel\proj\moya-info-tools\PrintServer\moyaPrintServer\moyaPrintServer\bin\Release\moyaPrintServer.pdb"
  File "I:\devel\proj\moya-info-tools\PrintServer\moyaPrintServer\moyaPrintServer\bin\Release\AutoUpdateLib.pdb"



  ; Write install path to registry (projectname_customer_versiongroup)

  WriteRegStr HKCU "Software\MoyaPrintServer_moya" "" $INSTDIR

  ; Remove obsoleted registry key on install

  DeleteRegKey HKCU "Software\MoyaPrintServer"



  ;Create uninstaller

  WriteUninstaller "$INSTDIR\Uninstall.exe"



  ;Create shortcuts

  CreateDirectory "$SMPROGRAMS\MoyaPrintServer moya"

  CreateShortCut "$SMPROGRAMS\MoyaPrintServer moya\MoyaPrintServer.lnk" "$INSTDIR\moyaPrintServer.exe"

  CreateShortCut "$SMPROGRAMS\MoyaPrintServer moya\Uninstall MoyaPrintServer.lnk" "$INSTDIR\Uninstall.exe"

  

  ; Remove shortcuts from old shortcut naming scheme path, if any

  SetShellVarContext all

  Delete "$SMPROGRAMS\MoyaPrintServer\MoyaPrintServer.lnk"

  Delete "$SMPROGRAMS\MoyaPrintServer\Uninstall MoyaPrintServer.lnk"

  RMDir "$SMPROGRAMS\MoyaPrintServer"

  SetShellVarContext current

  Delete "$SMPROGRAMS\MoyaPrintServer\MoyaPrintServer.lnk"

  Delete "$SMPROGRAMS\MoyaPrintServer\Uninstall MoyaPrintServer.lnk"

  RMDir "$SMPROGRAMS\MoyaPrintServer"

SectionEnd



;--------------------------------

;Descriptions



  LangString DESC_SecMain ${LANG_ENGLISH} "Base (required)"



;--------------------------------

;Uninstaller Section



Section "Uninstall"



  Delete "$SMPROGRAMS\MoyaPrintServer moya\*"

  RMDir "$SMPROGRAMS\MoyaPrintServer moya"

  Delete "$INSTDIR\moyaPrintServer.exe"

  Delete "$INSTDIR\autoupdate.xml"

  Delete "$INSTDIR\autoupdate.crt"



  ; this line will be replicated for every non-default existing assembly

  ; that is referenced to the main project.

  Delete "$INSTDIR\I:\devel\proj\moya-info-tools\PrintServer\moyaPrintServer\moyaPrintServer\bin\Release\AutoUpdateLib.dll"

  Delete "$INSTDIR\I:\devel\proj\moya-info-tools\PrintServer\moyaPrintServer\moyaPrintServer\bin\Release\moyaPrintServer.pdb"
  Delete "$INSTDIR\I:\devel\proj\moya-info-tools\PrintServer\moyaPrintServer\moyaPrintServer\bin\Release\AutoUpdateLib.pdb"



  Delete "$INSTDIR\Uninstall.exe"



  RMDir "$INSTDIR"

  

SectionEnd