source: Main/trunk/Server/install.nsi@ 252

Last change on this file since 252 was 217, checked in by Nishi, on Oct 3, 2024 at 4:50:16 AM

add a script to create specific installer

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