barrier/dist/nullsoft/synergy.nsi

179 lines
5.5 KiB
Plaintext

; Synergy.nsi
;
; This script is based on example1.nsi, but it remember the directory,
; has uninstall support and (optionally) installs start menu shortcuts.
;
; It will install makensisw.exe into a directory that the user selects,
;--------------------------------
; Path to root of tree
!define DEPTH "..\.."
; The name of the installer
Name "Synergy"
; The file to write
OutFile "${DEPTH}\build\SynergyInstaller.exe"
; The default installation directory
InstallDir $PROGRAMFILES\Synergy
; Registry key to check for directory (so if you install again, it will
; overwrite the old one automatically)
InstallDirRegKey HKLM "Software\Synergy" "Install_Dir"
;--------------------------------
; Pages
Page components
Page license
Page directory
Page instfiles
UninstPage uninstConfirm
UninstPage instfiles
;--------------------------------
; Text
ComponentText "This will install Synergy on your computer. Select the optional components you want to install."
DirText "Choose a directory to install Synergy to:"
UninstallText "This will uninstall Synergy from your computer."
LicenseText "Synergy is distributed under the GNU GPL:"
LicenseData "COPYING.txt"
;--------------------------------
; The stuff to install
Section "Synergy (required)"
SectionIn RO
; Set output path to the installation directory.
SetOutPath $INSTDIR
; Put files there
File "${DEPTH}\build\synergy.exe"
File "${DEPTH}\build\synergyc.exe"
File "${DEPTH}\build\synergys.exe"
File "${DEPTH}\build\*.dll"
File COPYING.txt
File ChangeLog.txt
File ${DEPTH}\doc\PORTING
File ${DEPTH}\doc\about.html
File ${DEPTH}\doc\authors.html
File ${DEPTH}\doc\autostart.html
File ${DEPTH}\doc\banner.html
File ${DEPTH}\doc\compiling.html
File ${DEPTH}\doc\configuration.html
File ${DEPTH}\doc\contact.html
File ${DEPTH}\doc\developer.html
File ${DEPTH}\doc\faq.html
File ${DEPTH}\doc\history.html
File ${DEPTH}\doc\home.html
File ${DEPTH}\doc\index.html
File ${DEPTH}\doc\license.html
File ${DEPTH}\doc\news.html
File ${DEPTH}\doc\roadmap.html
File ${DEPTH}\doc\running.html
File ${DEPTH}\doc\security.html
File ${DEPTH}\doc\synergy.css
File ${DEPTH}\doc\tips.html
File ${DEPTH}\doc\toc.html
File ${DEPTH}\doc\trouble.html
SetOutPath $INSTDIR\images
File ${DEPTH}\doc\images\logo.gif
File ${DEPTH}\doc\images\warp.gif
; Write the installation path into the registry
WriteRegStr HKLM SOFTWARE\Synergy "Install_Dir" "$INSTDIR"
; Write the uninstall keys for Windows
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Synergy" "DisplayName" "Synergy"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Synergy" "UninstallString" '"$INSTDIR\uninstall.exe"'
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Synergy" "NoModify" 1
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Synergy" "NoRepair" 1
WriteUninstaller "uninstall.exe"
SectionEnd
; Optional section (can be disabled by the user)
Section "Start Menu Shortcuts"
CreateDirectory "$SMPROGRAMS\Synergy"
CreateShortCut "$SMPROGRAMS\Synergy\Synergy.lnk" "$INSTDIR\synergy.exe" "" "$INSTDIR\synergy.exe" 0
CreateShortCut "$SMPROGRAMS\Synergy\README.lnk" "$INSTDIR\index.html"
CreateShortCut "$SMPROGRAMS\Synergy\Synergy Folder.lnk" "$INSTDIR"
CreateShortCut "$SMPROGRAMS\Synergy\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
SectionEnd
; Optional section (can be disabled by the user)
Section "Desktop Icon"
CreateShortCut "$DESKTOP\Synergy.lnk" "$INSTDIR\synergy.exe" "" "$INSTDIR\synergy.exe" 0
SectionEnd
;--------------------------------
; Uninstaller
Section "Uninstall"
; Stop and uninstall the daemons
ExecWait '"$INSTDIR\synergy.exe" /uninstall'
; Remove autorun registry keys for synergy
DeleteRegKey HKLM "SYSTEM\CurrentControlSet\Services\Synergy Server"
DeleteRegKey HKLM "SYSTEM\CurrentControlSet\Services\Synergy Client"
DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\RunServices" "Synergy Server"
DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\RunServices" "Synergy Client"
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "Synergy Server"
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "Synergy Client"
; not all keys will have existed, so errors WILL have happened
ClearErrors
; Remove registry keys
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Synergy"
DeleteRegKey HKLM SOFTWARE\Synergy
ClearErrors
; First try to remove files that might be locked (if synergy is running)
Delete /REBOOTOK $INSTDIR\synergy.exe
Delete /REBOOTOK $INSTDIR\synergyc.exe
Delete /REBOOTOK $INSTDIR\synergys.exe
Delete /REBOOTOK $INSTDIR\synrgyhk.dll
; Remove files and directory
Delete $INSTDIR\*.*
RMDir $INSTDIR
; Remove shortcuts, if any
Delete "$SMPROGRAMS\Synergy\*.*"
Delete "$DESKTOP\Synergy.lnk"
; Remove directories used
RMDir "$SMPROGRAMS\Synergy"
RMDir "$INSTDIR"
IfRebootFlag 0 EndOfAll
MessageBox MB_OKCANCEL "Uninstaller needs to reboot to finish cleaning up. reboot now?" IDCANCEL NoReboot
ClearErrors
Reboot
IfErrors 0 EndOfAll
MessageBox MB_OK "Uninstaller could not reboot. Please reboot manually. Thank you."
Abort "Uninstaller could not reboot. Please reboot manually. Thank you."
NoReboot:
DetailPrint ""
DetailPrint "Uninstaller could not reboot. Please reboot manually. Thank you."
DetailPrint ""
SetDetailsView show
EndOfAll:
SectionEnd