Subversion Repositories Tewi

Rev

Rev 217 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
54 nishi 1
# $Id: install.nsi 257 2024-10-04 05:34:27Z nishi $
2
 
78 nishi 3
VIFileVersion "1.0.0.0"
4
VIProductVersion "1.0.0.0"
77 nishi 5
VIAddVersionKey "FileVersion" "${VERSION}"
6
VIAddVersionKey "LegalCopyright" "Public domain. Original by Nishi"
7
VIAddVersionKey "FileDescription" "Tewi HTTPd Installer"
8
 
63 nishi 9
LoadLanguageFile "${NSISDIR}\Contrib\Language files\Japanese.nlf"
10
LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.nlf"
11
 
54 nishi 12
Name "Tewi HTTPd"
13
OutFile "install.exe"
14
InstallDir "C:\Tewi"
128 nishi 15
Icon "../Binary/tewi-install.ico"
54 nishi 16
LicenseData ../LICENSE
62 nishi 17
 
63 nishi 18
LangString EXEC_ONLY ${LANG_ENGLISH} "Install the executable only"
19
LangString EXEC_ONLY ${LANG_JAPANESE} "実行機能のみをインストールする"
20
LangString SERV_TOO ${LANG_ENGLISH} "Install the service too (NT-only)"
21
LangString SERV_TOO ${LANG_JAPANESE} "サービスもインストールする(NTのみ)"
22
LangString WAIT_STOP ${LANG_ENGLISH} "Waiting for 1 second so service can stop"
23
LangString WAIT_STOP ${LANG_JAPANESE} "サービスが止まるのを待っています"
24
 
208 nishi 25
!include "x64.nsh"
62 nishi 26
!include "LogicLib.nsh"
27
!include "Sections.nsh"
28
 
54 nishi 29
Page license
206 nishi 30
Page directory
62 nishi 31
Page components
54 nishi 32
Page instfiles
33
UninstPage uninstConfirm
34
UninstPage instfiles
35
Section
36
	CreateDirectory "$INSTDIR\etc"
37
	CreateDirectory "$INSTDIR\www"
60 nishi 38
	CreateDirectory "$INSTDIR\www\icons"
61 nishi 39
	CreateDirectory "$INSTDIR\modules"
54 nishi 40
	CreateDirectory "$INSTDIR\bin"
61 nishi 41
	SetOutPath "$INSTDIR"
217 nishi 42
	!cd ..
43
	File /oname=LICENSE.txt "LICENSE"
61 nishi 44
	SetOutPath "$INSTDIR\modules"
217 nishi 45
	!cd Module
46
	File "*.dll"
47
	!cd ..
54 nishi 48
	SetOutPath "$INSTDIR\etc"
61 nishi 49
	SetOverWrite off
217 nishi 50
	File /oname=tewi.conf "generated.conf"
54 nishi 51
	SetOutPath "$INSTDIR\www"
217 nishi 52
	File /oname=index.html "itworks.html"
53
	!cd Binary
54
	File /oname=pbtewi.gif "pbtewi.gif"
55
	!cd ..
257 nishi 56
	!cd Icons
60 nishi 57
	SetOutPath "$INSTDIR\www\icons"
217 nishi 58
	File "*.png"
59
	!cd ..
60
	!cd Server
61 nishi 61
	SetOverWrite on
257 nishi 62
	!cd ..
63
	SetOutPath "$INSTDIR"
64
	File "mime.types"
65
	!cd Server
54 nishi 66
 
67
	CreateDirectory "$SMPROGRAMS\Tewi HTTPd"
61 nishi 68
	CreateShortcut "$SMPROGRAMS\Tewi HTTPd\License.lnk" "$INSTDIR\LICENSE.txt" ""
54 nishi 69
	CreateShortcut "$SMPROGRAMS\Tewi HTTPd\Start Tewi HTTPd.lnk" "$INSTDIR\bin\tewi.exe" ""
70
	CreateShortcut "$SMPROGRAMS\Tewi HTTPd\Start Tewi HTTPd (verbose).lnk" "$INSTDIR\bin\tewi.exe" "-v"
71
	CreateShortcut "$SMPROGRAMS\Tewi HTTPd\Uninstall Tewi HTTPd.lnk" "$INSTDIR\uninstall.exe" ""
72
 
208 nishi 73
	${If} ${RunningX64}
74
		SetRegView 64
75
	${Else}
76
		SetRegView 32
77
	${EndIf}
54 nishi 78
	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tewi HTTPd" "DisplayName" "Tewi HTTPd"
208 nishi 79
	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tewi HTTPd" "InstallDir" "$INSTDIR"
54 nishi 80
	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tewi HTTPd" "UninstallString" '"$INSTDIR\uninstall.exe"'
81
 
82
	WriteUninstaller "$INSTDIR\uninstall.exe"
83
SectionEnd
84
 
63 nishi 85
Section "$(EXEC_ONLY)" SEL_EXEC
62 nishi 86
	SetOutPath "$INSTDIR\bin"
217 nishi 87
	!cd ..
88
	File "tewi.exe"
89
	!cd Server
62 nishi 90
	WriteINIStr $INSTDIR\install.ini uninstall service false
91
SectionEnd
92
 
217 nishi 93
!ifndef ONLY_EXEC
63 nishi 94
Section /o "$(SERV_TOO)" SEL_SERVICE
62 nishi 95
	WriteINIStr $INSTDIR\install.ini uninstall service true
96
	FileOpen $9 $INSTDIR\install.bat w
97
	FileWrite $9 '"$SYSDIR\sc.exe" stop "TewiHTTPd"$\r$\n'
98
	FileClose $9
99
	nsExec::Exec '"$INSTDIR\install.bat"'
100
	Pop $0
63 nishi 101
	DetailPrint "$(WAIT_STOP)"
62 nishi 102
	Sleep 1000
103
	CreateDirectory "$INSTDIR\logs"
104
	SetOutPath "$INSTDIR\bin"
217 nishi 105
	!cd ..
106
	File "tewi.exe"
107
	File /oname=tewisrv.exe "tewi-service.exe"
108
	!cd Server
62 nishi 109
	FileOpen $9 $INSTDIR\install.bat w
110
	FileWrite $9 '"$SYSDIR\sc.exe" delete "TewiHTTPd"$\r$\n'
111
	FileWrite $9 '"$SYSDIR\sc.exe" create "TewiHTTPd" DisplayName= "Tewi HTTPd" binpath= "$INSTDIR\bin\tewisrv.exe" start= "auto"$\r$\n'
112
	FileWrite $9 '"$SYSDIR\sc.exe" start "TewiHTTPd"$\r$\n'
113
	FileClose $9
114
	nsExec::Exec '"$INSTDIR\install.bat"'
115
	Pop $0
116
	Delete $INSTDIR\install.bat
117
SectionEnd
217 nishi 118
!endif
62 nishi 119
 
120
Function .onInit
121
	StrCpy $1 ${SEL_EXEC}
122
FunctionEnd
123
 
124
Function .onSelChange
125
	!insertmacro StartRadioButtons $1
126
	!insertmacro RadioButton ${SEL_EXEC}
217 nishi 127
	!ifndef ONLY_EXEC
62 nishi 128
	!insertmacro RadioButton ${SEL_SERVICE}
217 nishi 129
	!endif
62 nishi 130
	!insertmacro EndRadioButtons
131
FunctionEnd
132
 
54 nishi 133
Section "Uninstall"
62 nishi 134
	ReadINIStr $8 $INSTDIR\install.ini uninstall service
135
	${If} $8 == "true"
136
		FileOpen $9 $INSTDIR\uninstall.bat w
137
		FileWrite $9 '"$SYSDIR\sc.exe" stop "TewiHTTPd"$\r$\n'
138
		FileClose $9
139
		nsExec::Exec '"$INSTDIR\uninstall.bat"'
140
		Pop $0
141
		FileOpen $9 $INSTDIR\uninstall.bat w
63 nishi 142
		DetailPrint "$(WAIT_STOP)"
62 nishi 143
		Sleep 1000
144
		FileWrite $9 '"$SYSDIR\sc.exe" delete "TewiHTTPd"$\r$\n'
145
		FileClose $9
146
		nsExec::Exec '"$INSTDIR\uninstall.bat"'
147
		Pop $0
148
		Delete $INSTDIR\uninstall.bat
149
	${EndIf}
150
 
54 nishi 151
	RMDir /r "$INSTDIR"
152
	RMDir /r "$SMPROGRAMS\Tewi HTTPd"
153
 
208 nishi 154
	${If} ${RunningX64}
155
		SetRegView 64
156
	${Else}
157
		SetRegView 32
158
	${EndIf}
54 nishi 159
	DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Tewi HTTPd"
160
SectionEnd