commit
ea37e823ce
412
buildPy2exe.py
412
buildPy2exe.py
@ -16,12 +16,13 @@ SETUP_SCRIPT_PATH = "syncplay_setup.nsi"
|
|||||||
NSIS_SCRIPT_TEMPLATE = r"""
|
NSIS_SCRIPT_TEMPLATE = r"""
|
||||||
!include LogicLib.nsh
|
!include LogicLib.nsh
|
||||||
!include nsDialogs.nsh
|
!include nsDialogs.nsh
|
||||||
|
!include FileFunc.nsh
|
||||||
|
|
||||||
LoadLanguageFile "$${NSISDIR}\Contrib\Language files\English.nlf"
|
LoadLanguageFile "$${NSISDIR}\Contrib\Language files\English.nlf"
|
||||||
LoadLanguageFile "$${NSISDIR}\Contrib\Language files\Polish.nlf"
|
LoadLanguageFile "$${NSISDIR}\Contrib\Language files\Polish.nlf"
|
||||||
|
|
||||||
Name "Syncplay"
|
Name "Syncplay $version"
|
||||||
OutFile "Syncplay.exe"
|
OutFile "Syncplay $version Setup.exe"
|
||||||
InstallDir $$PROGRAMFILES\Syncplay
|
InstallDir $$PROGRAMFILES\Syncplay
|
||||||
RequestExecutionLevel admin
|
RequestExecutionLevel admin
|
||||||
XPStyle on
|
XPStyle on
|
||||||
@ -39,15 +40,70 @@ NSIS_SCRIPT_TEMPLATE = r"""
|
|||||||
VIAddVersionKey /LANG=$${LANG_POLISH} "LegalCopyright" "Syncplay"
|
VIAddVersionKey /LANG=$${LANG_POLISH} "LegalCopyright" "Syncplay"
|
||||||
VIAddVersionKey /LANG=$${LANG_POLISH} "FileDescription" "Syncplay"
|
VIAddVersionKey /LANG=$${LANG_POLISH} "FileDescription" "Syncplay"
|
||||||
|
|
||||||
|
LangString ^Associate $${LANG_ENGLISH} "Associate Syncplay with multimedia files."
|
||||||
|
LangString ^VLC $${LANG_ENGLISH} "Install Syncplay interface for VLC (requires VLC 2.0.X)"
|
||||||
|
LangString ^Shortcut $${LANG_ENGLISH} "Create Shortcuts in following locations:"
|
||||||
|
LangString ^StartMenu $${LANG_ENGLISH} "Start Menu"
|
||||||
|
LangString ^Desktop $${LANG_ENGLISH} "Desktop"
|
||||||
|
LangString ^QuickLaunchBar $${LANG_ENGLISH} "Quick Launch Bar"
|
||||||
|
LangString ^UninstConfig $${LANG_ENGLISH} "Delete configuration file."
|
||||||
|
|
||||||
|
LangString ^Associate $${LANG_POLISH} "Skojarz Syncplaya z multimediami"
|
||||||
|
LangString ^VLC $${LANG_POLISH} "Zainstaluj interface Syncplaya dla VLC(wymaga VLC 2.0.X)"
|
||||||
|
LangString ^Shortcut $${LANG_POLISH} "Utworz skroty w nastepujacych miejscach:"
|
||||||
|
LangString ^StartMenu $${LANG_POLISH} "Menu Start"
|
||||||
|
LangString ^Desktop $${LANG_POLISH} "Pulpit"
|
||||||
|
LangString ^QuickLaunchBar $${LANG_POLISH} "Pasek szybkiego uruchamiania"
|
||||||
|
LangString ^UninstConfig $${LANG_POLISH} "Usun plik konfiguracyjny."
|
||||||
|
|
||||||
PageEx license
|
PageEx license
|
||||||
LicenseData resources\license.txt
|
LicenseData resources\license.txt
|
||||||
PageExEnd
|
PageExEnd
|
||||||
Page directory
|
Page custom DirectoryCustom DirectoryCustomLeave
|
||||||
Page instFiles
|
Page instFiles
|
||||||
|
|
||||||
UninstPage uninstConfirm
|
UninstPage custom un.installConfirm un.installConfirmLeave
|
||||||
UninstPage instFiles
|
UninstPage instFiles
|
||||||
|
|
||||||
|
Var Dialog
|
||||||
|
Var Icon_Syncplay
|
||||||
|
Var Icon_Syncplay_Handle
|
||||||
|
Var CheckBox_Associate
|
||||||
|
Var CheckBox_VLC
|
||||||
|
Var CheckBox_StartMenuShortcut
|
||||||
|
Var CheckBox_DesktopShortcut
|
||||||
|
Var CheckBox_QuickLaunchShortcut
|
||||||
|
Var CheckBox_Associate_State
|
||||||
|
Var CheckBox_VLC_State
|
||||||
|
Var CheckBox_StartMenuShortcut_State
|
||||||
|
Var CheckBox_DesktopShortcut_State
|
||||||
|
Var CheckBox_QuickLaunchShortcut_State
|
||||||
|
Var Button_Browse
|
||||||
|
Var Directory
|
||||||
|
Var GroupBox_DirSub
|
||||||
|
Var Label_Text
|
||||||
|
Var Label_Shortcut
|
||||||
|
Var Label_Size
|
||||||
|
Var Label_Space
|
||||||
|
Var Text_Directory
|
||||||
|
|
||||||
|
Var Uninst_Dialog
|
||||||
|
Var Uninst_Icon
|
||||||
|
Var Uninst_Icon_Handle
|
||||||
|
Var Uninst_Label_Directory
|
||||||
|
Var Uninst_Label_Text
|
||||||
|
Var Uninst_Text_Directory
|
||||||
|
Var Uninst_CheckBox_Config
|
||||||
|
Var Uninst_CheckBox_Config_State
|
||||||
|
|
||||||
|
Var Size
|
||||||
|
Var SizeHex
|
||||||
|
Var AvailibleSpace
|
||||||
|
Var AvailibleSpaceGiB
|
||||||
|
Var Drive
|
||||||
|
Var VLC_Directory
|
||||||
|
Var VLC_Version
|
||||||
|
|
||||||
!macro APP_ASSOCIATE EXT FileCLASS DESCRIPTION COMMANDTEXT COMMAND
|
!macro APP_ASSOCIATE EXT FileCLASS DESCRIPTION COMMANDTEXT COMMAND
|
||||||
WriteRegStr HKCR ".$${EXT}" "" "$${FileCLASS}"
|
WriteRegStr HKCR ".$${EXT}" "" "$${FileCLASS}"
|
||||||
WriteRegStr HKCR "$${FileCLASS}" "" `$${DESCRIPTION}`
|
WriteRegStr HKCR "$${FileCLASS}" "" `$${DESCRIPTION}`
|
||||||
@ -63,66 +119,32 @@ NSIS_SCRIPT_TEMPLATE = r"""
|
|||||||
DeleteRegKey HKCR `$${FileCLASS}`
|
DeleteRegKey HKCR `$${FileCLASS}`
|
||||||
!macroend
|
!macroend
|
||||||
|
|
||||||
;Associates extensions with Syncplay
|
!macro ASSOCIATE EXT
|
||||||
Function Associate
|
!insertmacro APP_ASSOCIATE "$${EXT}" "Syncplay.$${EXT}" "$$INSTDIR\Syncplay.exe,%1%" \
|
||||||
!insertmacro APP_ASSOCIATE "mkv" "Syncplay.mkv" "$$INSTDIR\Syncplay.exe,%1%" \
|
|
||||||
"Open with Syncplay" "$$INSTDIR\Syncplay.exe $$\"%1$$\""
|
"Open with Syncplay" "$$INSTDIR\Syncplay.exe $$\"%1$$\""
|
||||||
!insertmacro APP_ASSOCIATE "mp4" "Syncplay.mp4" "$$INSTDIR\Syncplay.exe,%1%" \
|
!macroend
|
||||||
"Open with Syncplay" "$$INSTDIR\Syncplay.exe $$\"%1$$\""
|
|
||||||
!insertmacro APP_ASSOCIATE "avi" "Syncplay.avi" "$$INSTDIR\Syncplay.exe,%1%" \
|
|
||||||
"Open with Syncplay" "$$INSTDIR\Syncplay.exe $$\"%1$$\""
|
|
||||||
!insertmacro APP_ASSOCIATE "flv" "Syncplay.flv" "$$INSTDIR\Syncplay.exe,%1%" \
|
|
||||||
"Open with Syncplay" "$$INSTDIR\Syncplay.exe $$\"%1$$\""
|
|
||||||
!insertmacro APP_ASSOCIATE "mpg" "Syncplay.mpg" "$$INSTDIR\Syncplay.exe,%1%" \
|
|
||||||
"Open with Syncplay" "$$INSTDIR\Syncplay.exe $$\"%1$$\""
|
|
||||||
!insertmacro APP_ASSOCIATE "rmvb" "Syncplay.rmvb" "$$INSTDIR\Syncplay.exe,%1%" \
|
|
||||||
"Open with Syncplay" "$$INSTDIR\Syncplay.exe $$\"%1$$\""
|
|
||||||
!insertmacro APP_ASSOCIATE "vob" "Syncplay.vob" "$$INSTDIR\Syncplay.exe,%1%" \
|
|
||||||
"Open with Syncplay" "$$INSTDIR\Syncplay.exe $$\"%1$$\""
|
|
||||||
!insertmacro APP_ASSOCIATE "swf" "Syncplay.swf" "$$INSTDIR\Syncplay.exe,%1%" \
|
|
||||||
"Open with Syncplay" "$$INSTDIR\Syncplay.exe $$\"%1$$\""
|
|
||||||
!insertmacro APP_ASSOCIATE "wmv" "Syncplay.wmv" "$$INSTDIR\Syncplay.exe,%1%" \
|
|
||||||
"Open with Syncplay" "$$INSTDIR\Syncplay.exe $$\"%1$$\""
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
Function WriteRegistry
|
!macro UNASSOCIATE EXT
|
||||||
WriteRegStr HKLM SOFTWARE\Syncplay "Install_Dir" "$$INSTDIR"
|
!insertmacro APP_UNASSOCIATE "$${EXT}" "Syncplay.$${EXT}"
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "DisplayName" "Syncplay"
|
!macroend
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "UninstallString" '"$$INSTDIR\uninstall.exe"'
|
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "DisplayIcon" "$$INSTDIR\lib\icon.ico"
|
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "Publisher" "Syncplay"
|
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "URLInfoAbout" "http://syncplay.pl/"
|
|
||||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "NoModify" 1
|
|
||||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "NoRepair" 1
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
Function un.AssociateDel
|
;Prevents from running more than one instance of installer and sets default state of checkboxes
|
||||||
!insertmacro APP_UNASSOCIATE "mkv" "Syncplay.mkv"
|
|
||||||
!insertmacro APP_UNASSOCIATE "mp4" "Syncplay.mp4"
|
|
||||||
!insertmacro APP_UNASSOCIATE "avi" "Syncplay.avi"
|
|
||||||
!insertmacro APP_UNASSOCIATE "flv" "Syncplay.flv"
|
|
||||||
!insertmacro APP_UNASSOCIATE "mpg" "Syncplay.mpg"
|
|
||||||
!insertmacro APP_UNASSOCIATE "rmvb" "Syncplay.rmvb"
|
|
||||||
!insertmacro APP_UNASSOCIATE "vob" "Syncplay.vob"
|
|
||||||
!insertmacro APP_UNASSOCIATE "swf" "Syncplay.swf"
|
|
||||||
!insertmacro APP_UNASSOCIATE "wmv" "Syncplay.wmv"
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
Function un.DeleteFiles
|
|
||||||
$uninstallFiles
|
|
||||||
FunctionEnd
|
|
||||||
|
|
||||||
;Prevents from running more than one instance of installer
|
|
||||||
Function .onInit
|
Function .onInit
|
||||||
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "myMutex") i .r1 ?e'
|
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "myMutex") i .r1 ?e'
|
||||||
Pop $$R0
|
Pop $$R0
|
||||||
StrCmp $$R0 0 +3
|
StrCmp $$R0 0 +3
|
||||||
MessageBox MB_OK|MB_ICONEXCLAMATION "The installer is already running."
|
MessageBox MB_OK|MB_ICONEXCLAMATION "The installer is already running."
|
||||||
Abort
|
Abort
|
||||||
Call Language
|
|
||||||
|
StrCpy $$CheckBox_Associate_State $${BST_CHECKED}
|
||||||
|
StrCpy $$CheckBox_StartMenuShortcut_State $${BST_CHECKED}
|
||||||
|
|
||||||
|
Call GetSize
|
||||||
|
Call DriveSpace
|
||||||
|
Call Language
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|
||||||
;Language selection dialog
|
;Language selection dialog
|
||||||
Function Language
|
Function Language
|
||||||
Push ""
|
Push ""
|
||||||
Push $${LANG_ENGLISH}
|
Push $${LANG_ENGLISH}
|
||||||
@ -134,31 +156,297 @@ NSIS_SCRIPT_TEMPLATE = r"""
|
|||||||
Pop $$LANGUAGE
|
Pop $$LANGUAGE
|
||||||
StrCmp $$LANGUAGE "cancel" 0 +2
|
StrCmp $$LANGUAGE "cancel" 0 +2
|
||||||
Abort
|
Abort
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|
||||||
|
Function DirectoryCustom
|
||||||
|
|
||||||
|
nsDialogs::Create 1018
|
||||||
|
Pop $$Dialog
|
||||||
|
|
||||||
|
GetFunctionAddress $$R8 DirectoryCustomLeave
|
||||||
|
nsDialogs::OnBack $$R8
|
||||||
|
|
||||||
|
$${NSD_CreateIcon} 0u 0u 22u 20u ""
|
||||||
|
Pop $$Icon_Syncplay
|
||||||
|
$${NSD_SetIconFromInstaller} $$Icon_Syncplay $$Icon_Syncplay_Handle
|
||||||
|
|
||||||
|
$${NSD_CreateLabel} 25u 0u 241u 34u "$$(^DirText)"
|
||||||
|
Pop $$Label_Text
|
||||||
|
|
||||||
|
$${NSD_CreateText} 8u 38u 187u 12u "$$INSTDIR"
|
||||||
|
Pop $$Text_Directory
|
||||||
|
$${NSD_SetFocus} $$Text_Directory
|
||||||
|
|
||||||
|
$${NSD_CreateBrowseButton} 202u 37u 55u 14u "$$(^BrowseBtn)"
|
||||||
|
Pop $$Button_Browse
|
||||||
|
$${NSD_OnClick} $$Button_Browse DirectoryBrowseDialog
|
||||||
|
|
||||||
|
$${NSD_CreateGroupBox} 1u 27u 264u 30u "$$(^DirSubText)"
|
||||||
|
Pop $$GroupBox_DirSub
|
||||||
|
|
||||||
|
$${NSD_CreateLabel} 0u 111u 265u 8u "$$(^SpaceRequired)$$SizeMB"
|
||||||
|
Pop $$Label_Size
|
||||||
|
|
||||||
|
$${NSD_CreateLabel} 0u 122u 265u 8u "$$(^SpaceAvailable)$$AvailibleSpaceGiB.$$AvailibleSpaceGB"
|
||||||
|
Pop $$Label_Space
|
||||||
|
|
||||||
|
$${NSD_CreateCheckBox} 8u 59u 187u 10u "$$(^Associate)"
|
||||||
|
Pop $$CheckBox_Associate
|
||||||
|
|
||||||
|
$${NSD_CreateCheckBox} 8u 72u 250u 10u "$$(^VLC)"
|
||||||
|
Pop $$CheckBox_VLC
|
||||||
|
|
||||||
|
$${NSD_CreateLabel} 8u 85u 187u 10u "$$(^Shortcut)"
|
||||||
|
Pop $$Label_Shortcut
|
||||||
|
|
||||||
|
$${NSD_CreateCheckbox} 8u 98u 50u 10u "$$(^StartMenu)"
|
||||||
|
Pop $$CheckBox_StartMenuShortcut
|
||||||
|
|
||||||
|
$${NSD_CreateCheckbox} 68u 98u 50u 10u "$$(^Desktop)"
|
||||||
|
Pop $$CheckBox_DesktopShortcut
|
||||||
|
|
||||||
|
$${NSD_CreateCheckbox} 128u 98u 150u 10u "$$(^QuickLaunchBar)"
|
||||||
|
Pop $$CheckBox_QuickLaunchShortcut
|
||||||
|
|
||||||
|
$${If} $$CheckBox_Associate_State == $${BST_CHECKED}
|
||||||
|
$${NSD_Check} $$CheckBox_Associate
|
||||||
|
$${EndIf}
|
||||||
|
|
||||||
|
$${If} $$CheckBox_VLC_State == $${BST_CHECKED}
|
||||||
|
$${NSD_Check} $$CheckBox_VLC
|
||||||
|
$${EndIf}
|
||||||
|
|
||||||
|
$${If} $$CheckBox_StartMenuShortcut_State == $${BST_CHECKED}
|
||||||
|
$${NSD_Check} $$CheckBox_StartMenuShortcut
|
||||||
|
$${EndIf}
|
||||||
|
|
||||||
|
$${If} $$CheckBox_DesktopShortcut_State == $${BST_CHECKED}
|
||||||
|
$${NSD_Check} $$CheckBox_DesktopShortcut
|
||||||
|
$${EndIf}
|
||||||
|
|
||||||
|
$${If} $$CheckBox_QuickLaunchShortcut_State == $${BST_CHECKED}
|
||||||
|
$${NSD_Check} $$CheckBox_QuickLaunchShortcut
|
||||||
|
$${EndIf}
|
||||||
|
|
||||||
|
ReadRegStr $$VLC_Version HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\VLC media player" "VersionMajor"
|
||||||
|
$${If} $$VLC_Version != "2"
|
||||||
|
EnableWindow $$CheckBox_VLC 0
|
||||||
|
$${EndIf}
|
||||||
|
nsDialogs::Show
|
||||||
|
|
||||||
|
$${NSD_FreeIcon} $$Icon_Syncplay_Handle
|
||||||
|
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
|
Function DirectoryCustomLeave
|
||||||
|
$${NSD_GetText} $$Text_Directory $$INSTDIR
|
||||||
|
$${NSD_GetState} $$CheckBox_Associate $$CheckBox_Associate_State
|
||||||
|
$${NSD_GetState} $$CheckBox_VLC $$CheckBox_VLC_State
|
||||||
|
$${NSD_GetState} $$CheckBox_StartMenuShortcut $$CheckBox_StartMenuShortcut_State
|
||||||
|
$${NSD_GetState} $$CheckBox_DesktopShortcut $$CheckBox_DesktopShortcut_State
|
||||||
|
$${NSD_GetState} $$CheckBox_QuickLaunchShortcut $$CheckBox_QuickLaunchShortcut_State
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
|
Function DirectoryBrowseDialog
|
||||||
|
nsDialogs::SelectFolderDialog $$(^DirBrowseText)
|
||||||
|
Pop $$Directory
|
||||||
|
$${If} $$Directory != error
|
||||||
|
StrCpy $$INSTDIR $$Directory
|
||||||
|
$${NSD_SetText} $$Text_Directory $$INSTDIR
|
||||||
|
Call DriveSpace
|
||||||
|
$${NSD_SetText} $$Label_Space "$$(^SpaceAvailable)$$AvailibleSpaceGiB.$$AvailibleSpaceGB"
|
||||||
|
$${EndIf}
|
||||||
|
Abort
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
|
Function GetSize
|
||||||
|
StrCpy $$Size "$totalSize"
|
||||||
|
IntOp $$Size $$Size / 1024
|
||||||
|
IntFmt $$SizeHex "0x%08X" $$Size
|
||||||
|
IntOp $$Size $$Size / 1024
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
|
;Calculates Free Space on HDD
|
||||||
|
Function DriveSpace
|
||||||
|
StrCpy $$Drive $$INSTDIR 1
|
||||||
|
$${DriveSpace} "$$Drive:\" "/D=F /S=M" $$AvailibleSpace
|
||||||
|
IntOp $$AvailibleSpaceGiB $$AvailibleSpace / 1024
|
||||||
|
IntOp $$AvailibleSpace $$AvailibleSpace % 1024
|
||||||
|
IntOp $$AvailibleSpace $$AvailibleSpace / 102
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
|
Function InstallOptions
|
||||||
|
$${If} $$CheckBox_Associate_State == $${BST_CHECKED}
|
||||||
|
Call Associate
|
||||||
|
DetailPrint "Associated Syncplay with multimedia files"
|
||||||
|
$${EndIf}
|
||||||
|
|
||||||
|
$${If} $$CheckBox_StartMenuShortcut_State == $${BST_CHECKED}
|
||||||
|
CreateDirectory $$SMPROGRAMS\Syncplay
|
||||||
|
CreateShortCut "$$SMPROGRAMS\Syncplay\Syncplay.lnk" "$$INSTDIR\Syncplay.exe" ""
|
||||||
|
CreateShortCut "$$SMPROGRAMS\Syncplay\Uninstall.lnk" "$$INSTDIR\Uninstall.exe" ""
|
||||||
|
WriteINIStr "$$SMPROGRAMS\Syncplay\SyncplayWebsite.url" "InternetShortcut" "URL" "http://syncplay.pl"
|
||||||
|
$${EndIf}
|
||||||
|
|
||||||
|
$${If} $$CheckBox_DesktopShortcut_State == $${BST_CHECKED}
|
||||||
|
CreateShortCut "$$DESKTOP\Syncplay.lnk" "$$INSTDIR\Syncplay.exe" ""
|
||||||
|
$${EndIf}
|
||||||
|
|
||||||
|
$${If} $$CheckBox_QuickLaunchShortcut_State == $${BST_CHECKED}
|
||||||
|
CreateShortCut "$$QUICKLAUNCH\Syncplay.lnk" "$$INSTDIR\Syncplay.exe" ""
|
||||||
|
$${EndIf}
|
||||||
|
|
||||||
|
$${If} $$CheckBox_VLC_State == $${BST_CHECKED}
|
||||||
|
ReadRegStr $$VLC_Directory HKLM "Software\VideoLAN\VLC" "InstallDir"
|
||||||
|
SetOutPath $$VLC_Directory\lua\intf
|
||||||
|
File resources\syncplay.lua
|
||||||
|
$${EndIf}
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
|
;Associates extensions with Syncplay
|
||||||
|
Function Associate
|
||||||
|
!insertmacro ASSOCIATE avi
|
||||||
|
!insertmacro ASSOCIATE mpg
|
||||||
|
!insertmacro ASSOCIATE mpeg
|
||||||
|
!insertmacro ASSOCIATE mpe
|
||||||
|
!insertmacro ASSOCIATE m1v
|
||||||
|
!insertmacro ASSOCIATE m2v
|
||||||
|
!insertmacro ASSOCIATE mpv2
|
||||||
|
!insertmacro ASSOCIATE mp2v
|
||||||
|
!insertmacro ASSOCIATE mkv
|
||||||
|
!insertmacro ASSOCIATE mp4
|
||||||
|
!insertmacro ASSOCIATE m4v
|
||||||
|
!insertmacro ASSOCIATE mp4v
|
||||||
|
!insertmacro ASSOCIATE 3gp
|
||||||
|
!insertmacro ASSOCIATE 3gpp
|
||||||
|
!insertmacro ASSOCIATE 3g2
|
||||||
|
!insertmacro ASSOCIATE 3pg2
|
||||||
|
!insertmacro ASSOCIATE flv
|
||||||
|
!insertmacro ASSOCIATE f4v
|
||||||
|
!insertmacro ASSOCIATE rm
|
||||||
|
!insertmacro ASSOCIATE wmv
|
||||||
|
!insertmacro ASSOCIATE swf
|
||||||
|
!insertmacro ASSOCIATE rmvb
|
||||||
|
!insertmacro ASSOCIATE divx
|
||||||
|
!insertmacro ASSOCIATE amv
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
|
Function WriteRegistry
|
||||||
|
Call GetSize
|
||||||
|
WriteRegStr HKLM SOFTWARE\Syncplay "Install_Dir" "$$INSTDIR"
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "DisplayName" "Syncplay"
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "InstallLocation" "$$INSTDIR"
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "UninstallString" '"$$INSTDIR\uninstall.exe"'
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "DisplayIcon" "$$INSTDIR\resources\icon.ico"
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "Publisher" "Syncplay"
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "DisplayVersion" "$version"
|
||||||
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "URLInfoAbout" "http://syncplay.pl/"
|
||||||
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "NoModify" 1
|
||||||
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "NoRepair" 1
|
||||||
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "EstimatedSize" "$$SizeHex"
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
|
Function un.installConfirm
|
||||||
|
nsDialogs::Create 1018
|
||||||
|
Pop $$Uninst_Dialog
|
||||||
|
|
||||||
|
$${NSD_CreateIcon} 0u 1u 22u 20u ""
|
||||||
|
Pop $$Uninst_Icon
|
||||||
|
$${NSD_SetIconFromInstaller} $$Uninst_Icon $$Uninst_Icon_Handle
|
||||||
|
|
||||||
|
$${NSD_CreateLabel} 0u 45u 55u 8u "$$(^UninstallingSubText)"
|
||||||
|
Pop $$Uninst_Label_Directory
|
||||||
|
|
||||||
|
$${NSD_CreateLabel} 25u 0u 241u 34u "$$(^UninstallingText)"
|
||||||
|
Pop $$Uninst_Label_Text
|
||||||
|
|
||||||
|
ReadRegStr $$INSTDIR HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay" "InstallLocation"
|
||||||
|
$${NSD_CreateText} 56u 43u 209u 12u "$$INSTDIR"
|
||||||
|
Pop $$Uninst_Text_Directory
|
||||||
|
EnableWindow $$Uninst_Text_Directory 0
|
||||||
|
|
||||||
|
$${NSD_CreateCheckBox} 0u 60u 250u 10u "$$(^UninstConfig)"
|
||||||
|
Pop $$Uninst_CheckBox_Config
|
||||||
|
|
||||||
|
|
||||||
|
nsDialogs::Show
|
||||||
|
$${NSD_FreeIcon} $$Uninst_Icon_Handle
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
|
Function un.installConfirmLeave
|
||||||
|
$${NSD_GetState} $$Uninst_CheckBox_Config $$Uninst_CheckBox_Config_State
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
|
Function un.AssociateDel
|
||||||
|
!insertmacro UNASSOCIATE avi
|
||||||
|
!insertmacro UNASSOCIATE mpg
|
||||||
|
!insertmacro UNASSOCIATE mpeg
|
||||||
|
!insertmacro UNASSOCIATE mpe
|
||||||
|
!insertmacro UNASSOCIATE m1v
|
||||||
|
!insertmacro UNASSOCIATE m2v
|
||||||
|
!insertmacro UNASSOCIATE mpv2
|
||||||
|
!insertmacro UNASSOCIATE mp2v
|
||||||
|
!insertmacro UNASSOCIATE mkv
|
||||||
|
!insertmacro UNASSOCIATE mp4
|
||||||
|
!insertmacro UNASSOCIATE m4v
|
||||||
|
!insertmacro UNASSOCIATE mp4v
|
||||||
|
!insertmacro UNASSOCIATE 3gp
|
||||||
|
!insertmacro UNASSOCIATE 3gpp
|
||||||
|
!insertmacro UNASSOCIATE 3g2
|
||||||
|
!insertmacro UNASSOCIATE 3pg2
|
||||||
|
!insertmacro UNASSOCIATE flv
|
||||||
|
!insertmacro UNASSOCIATE f4v
|
||||||
|
!insertmacro UNASSOCIATE rm
|
||||||
|
!insertmacro UNASSOCIATE wmv
|
||||||
|
!insertmacro UNASSOCIATE swf
|
||||||
|
!insertmacro UNASSOCIATE rmvb
|
||||||
|
!insertmacro UNASSOCIATE divx
|
||||||
|
!insertmacro UNASSOCIATE amv
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
|
Function un.InstallOptions
|
||||||
|
Delete $$SMPROGRAMS\Syncplay\Syncplay.lnk
|
||||||
|
Delete $$SMPROGRAMS\Syncplay\Uninstall.lnk
|
||||||
|
Delete $$SMPROGRAMS\Syncplay\SyncplayWebsite.url
|
||||||
|
RMDir $$SMPROGRAMS\Syncplay
|
||||||
|
Delete $$DESKTOP\Syncplay.lnk
|
||||||
|
Delete $$QUICKLAUNCH\Syncplay.lnk
|
||||||
|
ReadRegStr $$VLC_Directory HKLM "Software\VideoLAN\VLC" "InstallDir"
|
||||||
|
Delete $$VLC_Directory\lua\intf\syncplay.lua
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
Section "Install"
|
Section "Install"
|
||||||
SetOverwrite on
|
SetOverwrite on
|
||||||
SetOutPath $$INSTDIR
|
SetOutPath $$INSTDIR
|
||||||
WriteUninstaller uninstall.exe
|
WriteUninstaller uninstall.exe
|
||||||
Call Associate
|
|
||||||
Call WriteRegistry
|
|
||||||
|
|
||||||
$installFiles
|
$installFiles
|
||||||
|
|
||||||
|
Call InstallOptions
|
||||||
|
Call WriteRegistry
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
Section "Uninstall"
|
Section "Uninstall"
|
||||||
Call un.AssociateDel
|
Call un.AssociateDel
|
||||||
Call un.DeleteFiles
|
Call un.InstallOptions
|
||||||
|
$uninstallFiles
|
||||||
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay"
|
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Syncplay"
|
||||||
DeleteRegKey HKLM SOFTWARE\Syncplay
|
DeleteRegKey HKLM SOFTWARE\Syncplay
|
||||||
Delete $$INSTDIR\uninstall.exe
|
Delete $$INSTDIR\uninstall.exe
|
||||||
|
RMDir $$INSTDIR\resources
|
||||||
|
RMDir $$INSTDIR\lib
|
||||||
RMDir $$INSTDIR
|
RMDir $$INSTDIR
|
||||||
|
|
||||||
|
$${If} $$Uninst_CheckBox_Config_State == $${BST_CHECKED}
|
||||||
|
Delete $$APPDATA\.syncplay
|
||||||
|
$${EndIf}
|
||||||
SectionEnd
|
SectionEnd
|
||||||
"""
|
"""
|
||||||
|
|
||||||
class NSISScript(object):
|
class NSISScript(object):
|
||||||
def create(self):
|
def create(self):
|
||||||
fileList = self.getBuildDirContents(OUT_DIR)
|
fileList, totalSize = self.getBuildDirContents(OUT_DIR)
|
||||||
|
print "Total size eq: {}".format(totalSize)
|
||||||
installFiles = self.prepareInstallListTemplate(fileList)
|
installFiles = self.prepareInstallListTemplate(fileList)
|
||||||
uninstallFiles = self.prepareDeleteListTemplate(fileList)
|
uninstallFiles = self.prepareDeleteListTemplate(fileList)
|
||||||
|
|
||||||
@ -168,11 +456,14 @@ class NSISScript(object):
|
|||||||
version = syncplay.version,
|
version = syncplay.version,
|
||||||
uninstallFiles = uninstallFiles,
|
uninstallFiles = uninstallFiles,
|
||||||
installFiles = installFiles,
|
installFiles = installFiles,
|
||||||
|
totalSize = totalSize,
|
||||||
)
|
)
|
||||||
with open(SETUP_SCRIPT_PATH, "w") as outfile:
|
with open(SETUP_SCRIPT_PATH, "w") as outfile:
|
||||||
outfile.write(contents)
|
outfile.write(contents)
|
||||||
|
|
||||||
def compile(self):
|
def compile(self):
|
||||||
|
if(not os.path.isfile(NSIS_COMPILE)):
|
||||||
|
return "makensis.exe not found, won't create the installer"
|
||||||
subproc = subprocess.Popen([NSIS_COMPILE, SETUP_SCRIPT_PATH], env=os.environ)
|
subproc = subprocess.Popen([NSIS_COMPILE, SETUP_SCRIPT_PATH], env=os.environ)
|
||||||
subproc.communicate()
|
subproc.communicate()
|
||||||
retcode = subproc.returncode
|
retcode = subproc.returncode
|
||||||
@ -182,14 +473,15 @@ class NSISScript(object):
|
|||||||
|
|
||||||
def getBuildDirContents(self, path):
|
def getBuildDirContents(self, path):
|
||||||
fileList = {}
|
fileList = {}
|
||||||
|
totalSize = 0
|
||||||
for root, _, files in os.walk(path):
|
for root, _, files in os.walk(path):
|
||||||
|
totalSize += sum(os.path.getsize(os.path.join(root, file_)) for file_ in files)
|
||||||
for file_ in files:
|
for file_ in files:
|
||||||
new_root = root.replace(OUT_DIR, "").strip("\\")
|
new_root = root.replace(OUT_DIR, "").strip("\\")
|
||||||
if(not fileList.has_key(new_root)):
|
if(not fileList.has_key(new_root)):
|
||||||
fileList[new_root] = []
|
fileList[new_root] = []
|
||||||
fileList[new_root].append(file_)
|
fileList[new_root].append(file_)
|
||||||
return fileList
|
return fileList, totalSize
|
||||||
|
|
||||||
|
|
||||||
def prepareInstallListTemplate(self, fileList):
|
def prepareInstallListTemplate(self, fileList):
|
||||||
create = []
|
create = []
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user