-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathicebreaker.nsi.in
116 lines (97 loc) · 3.72 KB
/
icebreaker.nsi.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
; icebreaker.nsi
;
; This script is used by the Nullsoft Scriptable Install System
;
; This is part of MingW on Fedora Linux, so we can cross-build
; the installer as well as the program itself.
Name "IceBreaker"
OutFile "icebreaker-%ICEBREAKERVERSION.exe"
BrandingText "Install System by Nullsoft"
Icon "../icebreaker_16c.ico"
WindowIcon on
BGGradient off
CRCCheck on
InstallDir $PROGRAMFILES\IceBreaker
InstallDirRegKey HKLM "Software\IceBreaker" "InstallDir"
LicenseText "IceBreaker is Free Software; you can redistribute or modify it under the terms of the GNU GPL. Copyright (c) 2000-2021 Matthew Miller <mattdm@mattdm.org>, et al." "Continue"
LicenseData "LICENSE.txt"
InstallColors C0C0C0 404040
InstProgressFlags smooth colored
ShowInstDetails show
SetOverwrite on
SetCompress auto
SetDatablockOptimize on
SetDateSave on
AutoCloseWindow true
Section "IceBreaker"
SetOutPath $INSTDIR
File icebreaker.exe
File *.dll
File lockhelper.lck
SetFileAttributes $INSTDIR\lockhelper.lck FILE_ATTRIBUTE_HIDDEN
DetailPrint "Linux rules."
File *.wav
File *.bmp
File *.ibt
File *.txt
File *.tar.xz
WriteRegStr HKLM "Software\IceBreaker" "InstallDir" "$INSTDIR"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\IceBreaker" "DisplayName" "IceBreaker"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\IceBreaker" "UninstallString" '"$INSTDIR\uninstall.exe"'
WriteUninstaller "uninstall.exe"
SectionEnd
Section "Start Menu Shortcuts"
CreateDirectory "$SMPROGRAMS\IceBreaker"
CreateShortCut "$SMPROGRAMS\IceBreaker\IceBreaker.lnk" "$INSTDIR\icebreaker.exe" "" "$INSTDIR\icebreaker.exe" 0
CreateShortCut "$SMPROGRAMS\IceBreaker\ReadMe.lnk" "$INSTDIR\README.txt" "" "" 0
CreateShortCut "$SMPROGRAMS\IceBreaker\IceBreaker - fullscreen.lnk" "$INSTDIR\icebreaker.exe" "-f" "$INSTDIR\icebreaker.exe" 0
CreateShortCut "$SMPROGRAMS\IceBreaker\IceBreaker - random themes.lnk" "$INSTDIR\icebreaker.exe" "-trandom" "$INSTDIR\icebreaker.exe" 0
CreateShortCut "$SMPROGRAMS\IceBreaker\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
DetailPrint "Installation Finished."
SectionEnd
UninstallText "This will delete IceBreaker from your computer. Hit Uninstall to continue, sadly."
Section "Uninstall"
SetAutoClose false
SetDetailsView show
Delete "$SMPROGRAMS\IceBreaker\*.*"
RMDir "$SMPROGRAMS\IceBreaker"
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\IceBreaker"
DeleteRegKey HKLM "Software\IceBreaker"
Delete $INSTDIR\lockhelper.lck
Delete $INSTDIR\icebreaker.exe
Delete $INSTDIR\*.dll
Delete $INSTDIR\*.wav
Delete $INSTDIR\*.bmp
Delete $INSTDIR\*.ibt
Delete $INSTDIR\*.txt
Delete $INSTDIR\*.tar.xz
Delete $INSTDIR\uninstall.exe
IfFileExists $INSTDIR\icebreaker.cfg HaveCSFiles
IfFileExists $INSTDIR\icebreaker.scores HaveCSFiles EndDelCSFiles
HaveCSFiles:
MessageBox MB_YESNO "Remove high score / configuration files?" IDNO NoDelCSFiles
Delete $INSTDIR\icebreaker.cfg
Delete $INSTDIR\icebreaker.scores
Goto EndDelCSFiles
NoDelCSFiles:
IfFileExists $INSTDIR\icebreaker.cfg NotRemCMesg CheckRemSMesg
NotRemCMesg:
DetailPrint "Not removing file $INSTDIR\icebreaker.cfg"
CheckRemSMesg:
IfFileExists $INSTDIR\icebreaker.scores NotRemSMesg EndDelCSFiles
NotRemSMesg:
DetailPrint "Not removing file $INSTDIR\icebreaker.scores"
EndDelCSFiles:
IfFileExists $INSTDIR\icebreaker.* NoRMDir
RMDir "$INSTDIR"
Goto EndRMDir
NoRMDir:
DetailPrint "Not removing directory $INSTDIR"
EndRMDir:
SectionEnd
Function .onInstSuccess
MessageBox MB_YESNO "Installation Successful. Run IceBreaker now?" IDNO NoReadme
Exec $INSTDIR\icebreaker.exe
NoReadme:
FunctionEnd
; eof