1821.1.1
by Alexander Belchenko
win32 installer for bzr.dev.0.9 |
1 |
; Script for Inno Setup installer |
2 |
; [[[cog cog.outl('; This script created by Cog from bzr.iss.cog source') ]]] |
|
3 |
; [[[end]]] |
|
4 |
; Cog is http://www.nedbatchelder.com/code/cog/ |
|
5 |
||
6 |
[Setup] |
|
1861.2.6
by Alexander Belchenko
branding: change Bazaar-NG to Bazaar |
7 |
AppName=Bazaar |
1821.1.1
by Alexander Belchenko
win32 installer for bzr.dev.0.9 |
8 |
|
9 |
; [[[cog |
|
2231.1.1
by Alexander Belchenko
Python 2.5 fixes for win32 installer |
10 |
; # Python 2.5 compatibility code |
11 |
; import os |
|
12 |
; import sys |
|
13 |
; cwd = os.getcwd() |
|
14 |
; if cwd not in sys.path: |
|
15 |
; sys.path.insert(0, cwd) |
|
16 |
; #/Python 2.5 compatibility code |
|
17 |
;
|
|
1821.1.1
by Alexander Belchenko
win32 installer for bzr.dev.0.9 |
18 |
; import bzrlib |
4580.5.16
by John Arbash Meinel
Change the all-in-one installer name. |
19 |
; try: |
1821.1.1
by Alexander Belchenko
win32 installer for bzr.dev.0.9 |
20 |
; VERSION = bzrlib.__version__ |
1861.2.6
by Alexander Belchenko
branding: change Bazaar-NG to Bazaar |
21 |
; AppVerName = 'Bazaar %s' % VERSION |
4580.5.16
by John Arbash Meinel
Change the all-in-one installer name. |
22 |
; OutputBaseFilename = 'bzr-%s-setup' % VERSION |
1821.1.1
by Alexander Belchenko
win32 installer for bzr.dev.0.9 |
23 |
; except: |
24 |
; VERSION = '' |
|
1861.2.6
by Alexander Belchenko
branding: change Bazaar-NG to Bazaar |
25 |
; AppVerName = 'Bazaar' |
1821.1.1
by Alexander Belchenko
win32 installer for bzr.dev.0.9 |
26 |
; OutputBaseFilename = 'bzr-setup' |
27 |
;
|
|
28 |
; cog.outl('AppVerName=%s' % AppVerName) |
|
29 |
; cog.outl('OutputBaseFilename=%s' % OutputBaseFilename) |
|
30 |
; ]]] |
|
1861.2.6
by Alexander Belchenko
branding: change Bazaar-NG to Bazaar |
31 |
AppVerName=Bazaar |
1821.1.1
by Alexander Belchenko
win32 installer for bzr.dev.0.9 |
32 |
OutputBaseFilename=bzr-setup |
33 |
; [[[end]]] |
|
34 |
||
1861.2.6
by Alexander Belchenko
branding: change Bazaar-NG to Bazaar |
35 |
DefaultDirName={pf}\Bazaar |
36 |
DefaultGroupName=Bazaar |
|
1821.1.1
by Alexander Belchenko
win32 installer for bzr.dev.0.9 |
37 |
|
38 |
SolidCompression=yes |
|
39 |
||
40 |
OutputDir="..\" |
|
41 |
SourceDir="..\..\win32_bzr.exe" |
|
42 |
||
43 |
SetupIconFile="..\bzr.ico" |
|
2070.2.2
by Alexander Belchenko
win32 installer: make short info page instead of full GPL license text |
44 |
InfoBeforeFile="..\tools\win32\info.txt" |
1821.1.1
by Alexander Belchenko
win32 installer for bzr.dev.0.9 |
45 |
|
46 |
VersionInfoCompany="Canonical Ltd." |
|
3565.5.2
by Mark Hammond
merge inno script changes |
47 |
VersionInfoCopyright="Canonical Ltd., 2005-2008" |
48 |
VersionInfoDescription="Windows installer for Bazaar" |
|
1821.1.1
by Alexander Belchenko
win32 installer for bzr.dev.0.9 |
49 |
; [[[cog |
50 |
; import bzrlib |
|
51 |
; version_number = [] |
|
52 |
; for i in bzrlib.version_info[:3]: |
|
53 |
; try: |
|
54 |
; i = int(i) |
|
55 |
; except ValueError: |
|
56 |
; i = 0 |
|
57 |
; version_number.append(i) |
|
58 |
; # incremental build number |
|
59 |
; from tools.win32.file_version import * |
|
60 |
; try: |
|
61 |
; version_prev = get_file_version(OutputBaseFilename + '.exe') |
|
62 |
; except (FileNotFound, VersionNotAvailable): |
|
63 |
; pass |
|
64 |
; else: |
|
65 |
; if version_number == list(version_prev[:3]): |
|
66 |
; version_number.append((version_prev[-1]+1) % 65536) |
|
67 |
; version_str = '.'.join(str(i) for i in version_number) |
|
68 |
; cog.outl('VersionInfoVersion="%s"' % version_str) |
|
69 |
; ]]] |
|
70 |
; [[[end]]] |
|
71 |
||
1861.2.6
by Alexander Belchenko
branding: change Bazaar-NG to Bazaar |
72 |
AppComments="Bazaar: Friendly distributed version control system" |
1821.1.1
by Alexander Belchenko
win32 installer for bzr.dev.0.9 |
73 |
AppPublisher="Canonical Ltd." |
5560.2.1
by Vincent Ladeuil
Fix the remaining references to http://bazaar-vcs.org (except the explicitly historical ones). |
74 |
AppPublisherURL="http://bazaar.canonical.com" |
75 |
AppSupportURL="http://wiki.bazaar.canonical.com/BzrSupport" |
|
76 |
AppUpdatesURL="http://wiki.bazaar.canonical.com/WindowsDownloads" |
|
1821.1.1
by Alexander Belchenko
win32 installer for bzr.dev.0.9 |
77 |
; [[[cog cog.outl('AppVersion=%s' % VERSION) ]]] |
78 |
; [[[end]]] |
|
79 |
||
80 |
ChangesEnvironment=yes |
|
3565.5.2
by Mark Hammond
merge inno script changes |
81 |
; MARKH: PrivilegesRequired=none means it can't be installed by a non-admin |
82 |
; user - but sadly we still need admin - eg, tortoise overlays, installing |
|
83 |
; into "\Program Files", installing COM objects etc all must be done by an |
|
84 |
; admin. |
|
85 |
PrivilegesRequired=admin |
|
1821.1.1
by Alexander Belchenko
win32 installer for bzr.dev.0.9 |
86 |
|
87 |
[Files] |
|
3565.5.2
by Mark Hammond
merge inno script changes |
88 |
; Tortoise files - these are at the top as we use 'ExtractTemporaryFile' on |
89 |
; the TortoiseOverlays MSI, and inno documents such files should be at the |
|
90 |
; start for best performance. |
|
91 |
; [[[cog |
|
92 |
; if "TBZR" in os.environ: # we need a more formal way of controlling this... |
|
3871.1.6
by Mark Hammond
remerge setup changes |
93 |
; tovmsi32 = os.environ["TORTOISE_OVERLAYS_MSI_WIN32"] # point at the 32bit TortoiseOverlays .msi |
94 |
; tovmsi64 = os.environ["TORTOISE_OVERLAYS_MSI_X64"] # point at the 64bit TortoiseOverlays .msi |
|
95 |
; cog.outl('Source: "%s"; Flags: dontcopy ignoreversion ; Components: tortoise' % tovmsi32) |
|
96 |
; cog.outl('Source: "%s"; Flags: dontcopy ignoreversion ; Components: tortoise' % tovmsi64) |
|
3565.5.7
by Mark Hammond
install all files with 'restartreplace uninsrestartdelete' and close |
97 |
; cog.outl('Source: "tbzrcache.exe"; DestDir: "{app}"; Flags: ignoreversion restartreplace uninsrestartdelete; Components: tortoise') |
98 |
; cog.outl('Source: "tbzrcachew.exe"; DestDir: "{app}"; Flags: ignoreversion restartreplace uninsrestartdelete; Components: tortoise') |
|
99 |
; cog.outl('Source: "tbzrcommand.exe"; DestDir: "{app}"; Flags: ignoreversion restartreplace uninsrestartdelete; Components: tortoise') |
|
100 |
; cog.outl('Source: "tbzrcommandw.exe"; DestDir: "{app}"; Flags: ignoreversion restartreplace uninsrestartdelete; Components: tortoise') |
|
3871.1.6
by Mark Hammond
remerge setup changes |
101 |
; cog.outl('Source: "tbzrtrace.exe"; DestDir: "{app}"; Flags: ignoreversion restartreplace uninsrestartdelete; Components: debug') |
3565.5.2
by Mark Hammond
merge inno script changes |
102 |
; # Note 'regserver' here appears to run regsvr32 without elevation, which |
103 |
; # is no good for us - so we have a [run] entry below. |
|
3871.1.6
by Mark Hammond
remerge setup changes |
104 |
; cog.outl('Source: "tbzr_old.dll"; DestDir: "{app}"; Flags: ignoreversion restartreplace uninsrestartdelete; Components: tortoise') |
105 |
; cog.outl('Source: "tbzrshellext_x86.dll"; DestDir: "{app}"; Flags: ignoreversion restartreplace uninsrestartdelete; Components: tortoise') |
|
106 |
; cog.outl('Source: "tbzrshellext_x64.dll"; DestDir: "{app}"; Flags: ignoreversion restartreplace uninsrestartdelete; Components: tortoise; Check: IsWin64;') |
|
3565.5.7
by Mark Hammond
install all files with 'restartreplace uninsrestartdelete' and close |
107 |
; cog.outl(r'Source: "plugins\qbzr\*"; DestDir: "{app}\plugins\qbzr"; Flags: createallsubdirs ignoreversion recursesubdirs restartreplace uninsrestartdelete; Components: tortoise') |
3565.5.2
by Mark Hammond
merge inno script changes |
108 |
;
|
3932.6.1
by Mark Hammond
Include all .html files from the tortoise doc directory. |
109 |
; cog.outl('Source: "%s\\doc\\*.html"; DestDir: "{app}\\doc\\tbzr"; Flags: ignoreversion; Components: tortoise' % os.environ['TBZR']) |
3565.5.2
by Mark Hammond
merge inno script changes |
110 |
; ]]] |
111 |
; [[[end]]] |
|
112 |
||
113 |
; We can't say '*.*' due to optional components. |
|
3565.5.7
by Mark Hammond
install all files with 'restartreplace uninsrestartdelete' and close |
114 |
Source: "plugins\*.*"; DestDir: "{app}\\plugins"; Flags: createallsubdirs ignoreversion recursesubdirs restartreplace uninsrestartdelete; Components: plugins |
115 |
Source: "*.bat"; DestDir: "{app}"; Flags: ignoreversion restartreplace uninsrestartdelete; |
|
116 |
Source: "*.url"; DestDir: "{app}"; Flags: ignoreversion restartreplace uninsrestartdelete; |
|
117 |
Source: "msvc*.dll"; DestDir: "{app}"; Flags: ignoreversion restartreplace uninsrestartdelete; |
|
118 |
Source: "bz*.exe"; DestDir: "{app}"; Flags: ignoreversion restartreplace uninsrestartdelete; |
|
119 |
Source: "Python*.dll"; DestDir: "{app}"; Flags: ignoreversion restartreplace uninsrestartdelete; |
|
120 |
Source: "lib\*.*"; DestDir: "{app}\lib"; Flags: createallsubdirs ignoreversion recursesubdirs restartreplace uninsrestartdelete; |
|
121 |
Source: "doc\*.*"; DestDir: "{app}\doc"; Flags: createallsubdirs ignoreversion recursesubdirs restartreplace uninsrestartdelete; |
|
2321.2.7
by Alexander Belchenko
win32 standalone installer improvements: |
122 |
; [[[cog |
123 |
; try: |
|
124 |
; import pycurl |
|
125 |
; except ImportError: |
|
126 |
; ca_path = None |
|
127 |
; else: |
|
128 |
; supported = pycurl.version_info()[8] |
|
129 |
; if 'https' in supported: |
|
130 |
; from bzrlib.transport.http.ca_bundle import get_ca_path |
|
131 |
; ca_path = get_ca_path() |
|
132 |
; if ca_path: |
|
133 |
; cog.outl('Source: "%s"; DestDir: "{app}"; Components: cabundle' % ca_path) |
|
134 |
; else: |
|
135 |
; cog.msg('You have pycurl with SSL support, ' |
|
136 |
; 'but CA Bundle (curl-ca-bundle.crt) not found!') |
|
137 |
; ]]] |
|
138 |
; [[[end]]] |
|
139 |
||
4584.1.1
by Alexander Belchenko
Bundle imageformats plugins for PyQt4 into bzr.exe installer to enable support of many image formats in QBzr. |
140 |
; imageformats plugins for PyQt4 |
141 |
; [[[cog |
|
142 |
; plug_dir = os.path.join(os.path.dirname(cog.inFile), # $(bzr_src_root)/tools/win32 |
|
143 |
; '..', '..', 'win32_bzr.exe', 'imageformats') |
|
144 |
; if os.path.isdir(plug_dir): |
|
145 |
; cog.outl('Source: "imageformats\\*.*"; DestDir: "{app}\\imageformats"; ' |
|
146 |
; 'Flags: createallsubdirs ignoreversion recursesubdirs restartreplace uninsrestartdelete;') |
|
147 |
; else: |
|
148 |
; cog.msg('imageformats plugins for PyQt4 not found') |
|
149 |
; ]]] |
|
150 |
; [[[end]]] |
|
151 |
||
3565.5.2
by Mark Hammond
merge inno script changes |
152 |
[Types] |
153 |
Name: "typical"; Description: "A typical installation" |
|
154 |
Name: "full"; Description: "Full Installation (typical installation plus test utilities)" |
|
155 |
Name: "compact"; Description: "Compact installation" |
|
156 |
Name: "custom"; Description: "Custom installation"; Flags: iscustom |
|
2321.2.7
by Alexander Belchenko
win32 standalone installer improvements: |
157 |
|
158 |
[Components] |
|
3565.5.2
by Mark Hammond
merge inno script changes |
159 |
Name: "main"; Description: "Main Files"; Types: full typical compact custom; Flags: fixed |
160 |
Name: "plugins"; Description: "Default plugins"; Types: full typical custom; |
|
2321.2.7
by Alexander Belchenko
win32 standalone installer improvements: |
161 |
; [[[cog |
162 |
; if ca_path: |
|
163 |
; cog.outl('Name: "cabundle"; ' |
|
164 |
; 'Description: "CA certificates for SSL support"; ' |
|
3565.5.2
by Mark Hammond
merge inno script changes |
165 |
; 'Types: full typical custom') |
166 |
; if "TBZR" in os.environ: # we need a more formal way of controlling this... |
|
3871.1.6
by Mark Hammond
remerge setup changes |
167 |
; cog.outl('Name: "tortoise"; Description: "Windows Shell Extensions (TortoiseBZR)"; Types: full typical custom;') |
3565.5.2
by Mark Hammond
merge inno script changes |
168 |
; cog.outl('Name: "debug"; Description: "Test, diagnostic and debugging utilities"; Types: full custom;') |
169 |
;
|
|
2321.2.7
by Alexander Belchenko
win32 standalone installer improvements: |
170 |
; ]]] |
171 |
; [[[end]]] |
|
172 |
||
1821.1.1
by Alexander Belchenko
win32 installer for bzr.dev.0.9 |
173 |
[Dirs] |
174 |
Name: "{userappdata}\bazaar\2.0" |
|
3010.4.3
by Alexander Belchenko
teach uninstaller to delete plugins subdirectory; NEWS entry. |
175 |
Name: "{app}\plugins"; Flags: uninsalwaysuninstall |
1821.1.1
by Alexander Belchenko
win32 installer for bzr.dev.0.9 |
176 |
|
2321.2.7
by Alexander Belchenko
win32 standalone installer improvements: |
177 |
|
1821.1.1
by Alexander Belchenko
win32 installer for bzr.dev.0.9 |
178 |
[Icons] |
2666.2.1
by Alexander Belchenko
change generated documentation extension from htm to html |
179 |
Name: "{group}\Documentation index"; Filename: "{app}\doc\index.html"; WorkingDir: "{app}\doc"; |
5560.2.1
by Vincent Ladeuil
Fix the remaining references to http://bazaar-vcs.org (except the explicitly historical ones). |
180 |
Name: "{group}\Bazaar Home Page"; Filename: "{app}\bazaar.url"; Comment: "http://bazaar.canonical.com"; |
2245.4.9
by Alexander Belchenko
Inno Setup script: using {cmd} macro instead of env varibale substitution (%COMSPEC%) |
181 |
Name: "{group}\Start Bzr in cmd shell"; Filename: "{cmd}"; Parameters: "/K start_bzr.bat"; WorkingDir: "{app}"; IconFilename: "{app}\bzr.exe"; Comment: "Open new Bzr session"; |
3565.5.2
by Mark Hammond
merge inno script changes |
182 |
; NOTE: Intent is to change the log file location - the line below will need to change to reflect that. |
183 |
Name: "{group}\Open Bzr log file"; Filename: "notepad.exe"; Parameters: "{userdocs}\.bzr.log"; Comment: "Launch notepad to view the bzr log file"; |
|
184 |
||
185 |
; [[[cog |
|
186 |
; if "TBZR" in os.environ: |
|
187 |
; cog.outl(r'Name: "{group}\TortoiseBZR documentation"; Filename: "{app}\doc\tbzr\index.html"; Comment: "Launch TortoiseBZR documentation";') |
|
188 |
; ]]] |
|
189 |
; [[[end]]] |
|
190 |
; No Uninstall here - Control Panel will do |
|
1821.1.1
by Alexander Belchenko
win32 installer for bzr.dev.0.9 |
191 |
|
2321.2.7
by Alexander Belchenko
win32 standalone installer improvements: |
192 |
|
1821.1.1
by Alexander Belchenko
win32 installer for bzr.dev.0.9 |
193 |
[Tasks] |
3565.5.2
by Mark Hammond
merge inno script changes |
194 |
Name: Path; Description: "Add {app} directory to PATH environment variable" |
195 |
; [[[cog |
|
196 |
; if "TBZR" in os.environ: |
|
197 |
; cog.outl('Name: TBZRReadme; Description: "View the TortoiseBZR Readme"; Components: tortoise') |
|
198 |
; ]]] |
|
199 |
; [[[end]]] |
|
2321.2.7
by Alexander Belchenko
win32 standalone installer improvements: |
200 |
|
1821.1.1
by Alexander Belchenko
win32 installer for bzr.dev.0.9 |
201 |
|
3010.4.2
by Alexander Belchenko
Windows standalone installer write to the registry some useful info about paths and bzr version |
202 |
[Registry] |
203 |
Root: HKLM; Subkey: "SOFTWARE\Bazaar"; Flags: noerror uninsdeletekey |
|
204 |
Root: HKLM; Subkey: "SOFTWARE\Bazaar"; ValueName: "InstallPath"; ValueType: string; ValueData: "{app}"; Flags: noerror |
|
3565.5.2
by Mark Hammond
merge inno script changes |
205 |
; Don't write stuff that can be implied |
206 |
;Root: HKLM; Subkey: "SOFTWARE\Bazaar"; ValueName: "BzrlibPath"; ValueType: string; ValueData: "{app}\lib\library.zip\bzrlib"; Flags: noerror |
|
207 |
;Root: HKLM; Subkey: "SOFTWARE\Bazaar"; ValueName: "PluginsPath"; ValueType: string; ValueData: "{app}\plugins"; Flags: noerror |
|
208 |
;Root: HKLM; Subkey: "SOFTWARE\Bazaar"; ValueName: "PythonPath"; ValueType: string; ValueData: "{app}\lib\library.zip"; Flags: noerror |
|
3010.4.2
by Alexander Belchenko
Windows standalone installer write to the registry some useful info about paths and bzr version |
209 |
; [[[cog cog.outl('Root: HKLM; Subkey: "SOFTWARE\Bazaar"; ValueName: "Version"; ValueType: string; ValueData: "%s"; Flags: noerror' % VERSION) ]]] |
210 |
; [[[end]]] |
|
211 |
||
212 |
||
1821.1.1
by Alexander Belchenko
win32 installer for bzr.dev.0.9 |
213 |
[Run] |
214 |
Filename: "{app}\bzr_postinstall.exe"; Parameters: "--start-bzr"; Flags: skipifdoesntexist runhidden; |
|
215 |
Filename: "{app}\bzr_postinstall.exe"; Parameters: "--add-path"; Tasks: Path; Flags: skipifdoesntexist skipifsilent runhidden; |
|
3565.5.2
by Mark Hammond
merge inno script changes |
216 |
; [[[cog |
217 |
; if "TBZR" in os.environ: |
|
3871.1.6
by Mark Hammond
remerge setup changes |
218 |
; cog.outl('Filename: "regsvr32.exe"; Parameters: "/s /i: /n tbzrshellext_x86.dll"; WorkingDir: "{app}"; Components: tortoise; Description: "Registering Tortoise"; StatusMsg: "Registering Tortoise"') |
219 |
; cog.outl('Filename: "regsvr32.exe"; Parameters: "/s /i: /n tbzrshellext_x64.dll"; WorkingDir: "{app}"; Components: tortoise; Description: "Registering Tortoise"; StatusMsg: "Registering Tortoise"; Check: IsWin64') |
|
3565.5.2
by Mark Hammond
merge inno script changes |
220 |
; cog.outl(r'Filename: "{app}\doc\tbzr\index.html"; Tasks: TBZRReadme; Flags: shellexec') |
221 |
; ]]] |
|
222 |
; [[[end]]] |
|
1821.1.1
by Alexander Belchenko
win32 installer for bzr.dev.0.9 |
223 |
|
2321.2.7
by Alexander Belchenko
win32 standalone installer improvements: |
224 |
|
1821.1.1
by Alexander Belchenko
win32 installer for bzr.dev.0.9 |
225 |
[UninstallRun] |
4580.5.16
by John Arbash Meinel
Change the all-in-one installer name. |
226 |
Filename: "{app}\bzr_postinstall.exe"; Parameters: "--delete-path --delete-shell-menu --silent"; Flags: skipifdoesntexist runhidden; |
3565.5.2
by Mark Hammond
merge inno script changes |
227 |
; [[[cog |
228 |
; if "TBZR" in os.environ: |
|
3871.1.6
by Mark Hammond
remerge setup changes |
229 |
; cog.outl('Filename: "regsvr32.exe"; Parameters: "/u /s /i: tbzrshellext_x86.dll"; WorkingDir: "{app}"; Components: tortoise; StatusMsg: "Unregistering Tortoise"; Flags: skipifdoesntexist') |
230 |
; cog.outl('Filename: "regsvr32.exe"; Parameters: "/u /s /i: tbzrshellext_x64.dll"; WorkingDir: "{app}"; Components: tortoise; StatusMsg: "Unregistering Tortoise"; Flags: skipifdoesntexist; Check: IsWin64') |
|
3565.5.2
by Mark Hammond
merge inno script changes |
231 |
; ]]] |
232 |
; [[[end]]] |
|
233 |
||
3638.1.1
by Alexander Belchenko
remove out-of-date options from Windows standalone installer. |
234 |
|
3565.5.2
by Mark Hammond
merge inno script changes |
235 |
[Code] |
236 |
const
|
|
237 |
SHCNF_IDLIST = $0000; |
|
238 |
SHCNE_ASSOCCHANGED = $08000000; |
|
239 |
WM_QUIT = 18; |
|
3871.1.6
by Mark Hammond
remerge setup changes |
240 |
MOVEFILE_DELAY_UNTIL_REBOOT = 4; |
3565.5.2
by Mark Hammond
merge inno script changes |
241 |
|
242 |
procedure SHChangeNotify(wEventId, uFlags, dwItem1, dwItem2: Integer); |
|
243 |
external 'SHChangeNotify@shell32.dll stdcall'; |
|
244 |
||
3871.1.6
by Mark Hammond
remerge setup changes |
245 |
function MoveFileEx(lpExistingFileName, lpNewFileName: String; dwFlags: Cardinal): Integer; |
246 |
external 'MoveFileExA@kernel32.dll stdcall'; |
|
247 |
||
248 |
procedure DeleteFileNowOrLater(filename: string); |
|
249 |
var
|
|
250 |
rc : Integer; |
|
251 |
begin
|
|
252 |
if FileExists(filename) and not DeleteFile(filename) then |
|
253 |
// can't work out to pass NULL to the API, but an empty string |
|
254 |
// seems to work OK. |
|
255 |
MoveFileEx(filename, '', MOVEFILE_DELAY_UNTIL_REBOOT); |
|
256 |
end; |
|
257 |
||
3565.5.7
by Mark Hammond
install all files with 'restartreplace uninsrestartdelete' and close |
258 |
procedure ShutdownTBZR; |
259 |
var
|
|
260 |
hwnd: HWND; |
|
261 |
begin
|
|
262 |
// [[[cog |
|
263 |
// if "TBZR" not in os.environ: |
|
264 |
// cog.outl(' Exit; // No TSVN set - exit this procedure.') |
|
265 |
// ]]] |
|
266 |
// [[[end]]] |
|
267 |
// ask the cache process to shut-down. |
|
268 |
hwnd := FindWindowByClassName('TBZRCache_Taskbar'); |
|
269 |
if hwnd <> 0 then |
|
270 |
PostMessage(hwnd, WM_QUIT, 1, 0); |
|
271 |
end; |
|
272 |
||
3565.5.2
by Mark Hammond
merge inno script changes |
273 |
procedure CurStepChanged(CurStep: TSetupStep); |
274 |
var
|
|
275 |
S, tovmsi, fqtovmsi, params: String; |
|
276 |
ErrorCode: Integer; |
|
277 |
begin
|
|
278 |
if CurStep=ssInstall then begin |
|
3565.5.7
by Mark Hammond
install all files with 'restartreplace uninsrestartdelete' and close |
279 |
ShutdownTBZR; |
3932.1.1
by Martin Pool
Merge Mark's Support for tbzr c++ implemented shell extension and fix typo |
280 |
// In case the user hasn't uninstalled the old version before |
3871.1.6
by Mark Hammond
remerge setup changes |
281 |
// upgrading, we unregister and delete some obsolete files |
282 |
// (regsvr32 remains silent even if the file doesn't exist) |
|
283 |
Exec('regsvr32.exe', '/s /u "' + ExpandConstant('{app}\tbzr.dll') + '"', |
|
284 |
'', SW_HIDE, ewWaitUntilTerminated, ErrorCode); |
|
285 |
DeleteFileNowOrLater(ExpandConstant('{app}\tbzr.dll')); |
|
286 |
DeleteFileNowOrLater(ExpandConstant('{app}\tbzrtest.exe')); |
|
287 |
DeleteFileNowOrLater(ExpandConstant('{app}\tbzr_tracer.exe')); |
|
3565.5.2
by Mark Hammond
merge inno script changes |
288 |
end; |
289 |
||
290 |
if CurStep=ssPostInstall then begin |
|
291 |
// a couple of post-install tasks |
|
292 |
if IsComponentSelected('tortoise') then begin |
|
293 |
// Need to execute: |
|
294 |
// msiexec /i TortoiseOverlays-1.X.X.XXXX-win32.msi /qn /norestart |
|
3871.1.6
by Mark Hammond
remerge setup changes |
295 |
// 64bit notes: |
296 |
// We are still primarily a 32bit application - the only 64bit binary is the |
|
297 |
// shell extension, but even then, we need to install the 32bit version too. |
|
298 |
// Thus, we keep tortoise in 32bit "install mode" - meaning we are installed |
|
299 |
// to "\Program Files (x86)". We don't bother trying to install our single |
|
300 |
// 64bit DLL into "\Program Files" - we use a different DLL name for 32 and |
|
301 |
// 64 bit versions, so nothing will conflict. |
|
302 |
// Note however that on a 64bit OS, we only need the 64bit TortoiseOverlays - |
|
303 |
// the 32bit apps using shell extensions still work fine with that. |
|
3565.5.2
by Mark Hammond
merge inno script changes |
304 |
// [[[cog |
305 |
// if "TBZR" in os.environ: |
|
306 |
// import os |
|
3871.1.6
by Mark Hammond
remerge setup changes |
307 |
// cog.outl("if IsWin64 then") |
308 |
// cog.outl(" tovmsi := '%s'" % os.path.basename(os.environ["TORTOISE_OVERLAYS_MSI_X64"])) |
|
309 |
// cog.outl("else") |
|
310 |
// cog.outl(" tovmsi := '%s'" % os.path.basename(os.environ["TORTOISE_OVERLAYS_MSI_WIN32"])) |
|
3565.5.2
by Mark Hammond
merge inno script changes |
311 |
// else: |
312 |
// cog.outl("tovmsi := '';") |
|
313 |
// ]]] |
|
314 |
// [[[end]]] |
|
315 |
ExtractTemporaryFile(tovmsi); |
|
316 |
fqtovmsi := AddBackslash(ExpandConstant('{tmp}')) + tovmsi; |
|
317 |
params := '/i "' + fqtovmsi + '" /qn /norestart'; |
|
318 |
if not ShellExec('', 'msiexec.exe', params, '', SW_HIDE, |
|
319 |
ewWaitUntilTerminated, ErrorCode) then |
|
320 |
MsgBox('Failed to install TortoiseOverlays: ' + SysErrorMessage(ErrorCode), |
|
321 |
mbInformation, MB_OK); |
|
322 |
// Ideally we could be bzr_postinstall.exe this way too, but |
|
323 |
// its needed at uninstall time. |
|
324 |
end; |
|
325 |
// cause explorer to re-fetch handlers. |
|
326 |
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0); |
|
327 |
end; |
|
328 |
end; |
|
329 |
||
3565.5.7
by Mark Hammond
install all files with 'restartreplace uninsrestartdelete' and close |
330 |
|
4580.5.16
by John Arbash Meinel
Change the all-in-one installer name. |
331 |
function InitializeUninstall(): Boolean; |
3565.5.7
by Mark Hammond
install all files with 'restartreplace uninsrestartdelete' and close |
332 |
begin
|
333 |
ShutdownTBZR; |
|
334 |
result := True; |
|
335 |
end; |