|
|
@@ -0,0 +1,116 @@
|
|
|
+;--------------------------------
|
|
|
+;Include Modern UI
|
|
|
+
|
|
|
+ !include "MUI2.nsh"
|
|
|
+
|
|
|
+;--------------------------------
|
|
|
+;General
|
|
|
+
|
|
|
+ ;Name and file
|
|
|
+ !define SOURCEPATH "C:\SourceCode\SyncThing\Binaries"
|
|
|
+
|
|
|
+ Name "SyncThing Windows Service Install"
|
|
|
+ OutFile "SyncThingSetup.exe"
|
|
|
+
|
|
|
+ ;Default installation folder
|
|
|
+ InstallDir "$PROGRAMFILES\SyncThing"
|
|
|
+
|
|
|
+ ;Get installation folder from registry if available
|
|
|
+ InstallDirRegKey HKCU "Software\SyncThing" ""
|
|
|
+
|
|
|
+ ;Request application privileges for Windows Vista
|
|
|
+ RequestExecutionLevel admin
|
|
|
+
|
|
|
+;--------------------------------
|
|
|
+;Interface Settings
|
|
|
+
|
|
|
+ !define MUI_ABORTWARNING
|
|
|
+
|
|
|
+;--------------------------------
|
|
|
+;Pages
|
|
|
+
|
|
|
+ !insertmacro MUI_PAGE_COMPONENTS
|
|
|
+ !insertmacro MUI_PAGE_DIRECTORY
|
|
|
+ !insertmacro MUI_PAGE_INSTFILES
|
|
|
+
|
|
|
+ !insertmacro MUI_UNPAGE_CONFIRM
|
|
|
+ !insertmacro MUI_UNPAGE_INSTFILES
|
|
|
+
|
|
|
+;--------------------------------
|
|
|
+;Languages
|
|
|
+
|
|
|
+ !insertmacro MUI_LANGUAGE "English"
|
|
|
+
|
|
|
+;--------------------------------
|
|
|
+;Installer Sections
|
|
|
+
|
|
|
+Section "SyncThing" SecSyncThing
|
|
|
+ SectionIn RO
|
|
|
+ SetOutPath "$INSTDIR"
|
|
|
+
|
|
|
+ IfFileExists syncthingservice.exe 0 +2
|
|
|
+ SimpleSC::StopService "SyncThing" 1 30
|
|
|
+
|
|
|
+ File /r "${SOURCEPATH}\syncthing.exe"
|
|
|
+ File /r "${SOURCEPATH}\syncthing.exe.md5"
|
|
|
+ File /r "${SOURCEPATH}\AUTHORS.txt"
|
|
|
+ File /r "${SOURCEPATH}\LICENSE.txt"
|
|
|
+ File /r "${SOURCEPATH}\README.txt"
|
|
|
+ File /r "${SOURCEPATH}\FAQ.pdf"
|
|
|
+ File /r "${SOURCEPATH}\Getting-Started.pdf"
|
|
|
+
|
|
|
+ ;Store installation folder
|
|
|
+ WriteRegStr HKCU "Software\SyncThing" "" $INSTDIR
|
|
|
+
|
|
|
+ ;Create uninstaller
|
|
|
+ WriteUninstaller "$INSTDIR\Uninstall.exe"
|
|
|
+
|
|
|
+SectionEnd
|
|
|
+
|
|
|
+Section "Command Line Interface" SecSyncThingCLI
|
|
|
+
|
|
|
+ SetOutPath "$INSTDIR"
|
|
|
+
|
|
|
+ File /r "${SOURCEPATH}\syncthing-cli.exe"
|
|
|
+
|
|
|
+SectionEnd
|
|
|
+
|
|
|
+Section "Windows Service" SecSyncThingService
|
|
|
+
|
|
|
+ SetOutPath "$INSTDIR"
|
|
|
+
|
|
|
+ File /r "${SOURCEPATH}\syncthingservice.exe"
|
|
|
+ File /r "${SOURCEPATH}\syncthingservice.xml"
|
|
|
+
|
|
|
+ ExecWait 'syncthingservice.exe install'
|
|
|
+ ExecWait 'syncthingservice.exe start'
|
|
|
+
|
|
|
+SectionEnd
|
|
|
+
|
|
|
+;--------------------------------
|
|
|
+;Descriptions
|
|
|
+
|
|
|
+ ;Language strings
|
|
|
+ LangString DESC_SecSyncThing ${LANG_ENGLISH} "SyncThing"
|
|
|
+ LangString DESC_SecSyncThingCLI ${LANG_ENGLISH} "Command Line Interface"
|
|
|
+ LangString DESC_SecSyncThingService ${LANG_ENGLISH} "Windows Service"
|
|
|
+
|
|
|
+ ;Assign language strings to sections
|
|
|
+ !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
|
|
+ !insertmacro MUI_DESCRIPTION_TEXT ${SecSyncThing} $(DESC_SecSyncThing)
|
|
|
+ !insertmacro MUI_DESCRIPTION_TEXT ${SecSyncThingCLI} $(DESC_SecSyncThingCLI)
|
|
|
+ !insertmacro MUI_DESCRIPTION_TEXT ${SecSyncThingService} $(DESC_SecSyncThingService)
|
|
|
+ !insertmacro MUI_FUNCTION_DESCRIPTION_END
|
|
|
+
|
|
|
+;--------------------------------
|
|
|
+;Uninstaller Section
|
|
|
+
|
|
|
+Section "Uninstall"
|
|
|
+
|
|
|
+ Delete "$INSTDIR\Uninstall.exe"
|
|
|
+
|
|
|
+ RMDir "$INSTDIR"
|
|
|
+
|
|
|
+ DeleteRegKey /ifempty HKCU "Software\SyncThing"
|
|
|
+
|
|
|
+SectionEnd
|