Add installers for migrating from XChat-WDK
This commit is contained in:
		
							parent
							
								
									547fe006ca
								
							
						
					
					
						commit
						876bbe23d9
					
				
					 2 changed files with 263 additions and 0 deletions
				
			
		
							
								
								
									
										132
									
								
								win32/installer/xchat-wdk-hexchat-x64.iss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										132
									
								
								win32/installer/xchat-wdk-hexchat-x64.iss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,132 @@
 | 
			
		|||
[Setup] 
 | 
			
		||||
WizardImageFile=c:\mozilla build\build\xchat-wdk\win32\bitmaps\wizardimage.bmp 
 | 
			
		||||
WizardSmallImageFile=c:\mozilla build\build\xchat-wdk\win32\bitmaps\wizardsmallimage.bmp 
 | 
			
		||||
AppVerName=XChat-WDK 2.9.0
 | 
			
		||||
AppVersion=2.9.0
 | 
			
		||||
VersionInfoVersion=2.9.0
 | 
			
		||||
OutputBaseFilename=XChat-WDK 2.9.0 x64
 | 
			
		||||
SetupIconFile=c:\mozilla build\build\xchat-wdk\xchat.ico 
 | 
			
		||||
AppName=XChat-WDK
 | 
			
		||||
AppPublisher=XChat-WDK
 | 
			
		||||
AppPublisherURL=http://www.xchat-wdk.org/
 | 
			
		||||
AppCopyright=Copyright (C) 1998-2010 Peter Zelezny
 | 
			
		||||
AppSupportURL=http://code.google.com/p/xchat-wdk/issues/list
 | 
			
		||||
AppUpdatesURL=http://www.xchat-wdk.org/home/downloads
 | 
			
		||||
UninstallDisplayIcon={app}\xchat.exe
 | 
			
		||||
UninstallDisplayName=XChat-WDK
 | 
			
		||||
DefaultDirName={pf}\XChat-WDK
 | 
			
		||||
DefaultGroupName=XChat-WDK
 | 
			
		||||
DisableProgramGroupPage=yes
 | 
			
		||||
DisableDirPage=yes
 | 
			
		||||
DisableReadyPage=yes
 | 
			
		||||
DisableReadyMemo=yes
 | 
			
		||||
SolidCompression=yes
 | 
			
		||||
SourceDir=..\tmp
 | 
			
		||||
OutputDir=..\win32
 | 
			
		||||
FlatComponentsList=no
 | 
			
		||||
PrivilegesRequired=none
 | 
			
		||||
ShowComponentSizes=no
 | 
			
		||||
CreateUninstallRegKey=no
 | 
			
		||||
Uninstallable=no
 | 
			
		||||
ArchitecturesAllowed=x64
 | 
			
		||||
ArchitecturesInstallIn64BitMode=x64
 | 
			
		||||
 | 
			
		||||
[Messages]
 | 
			
		||||
BeveledLabel= XChat-WDK
 | 
			
		||||
 | 
			
		||||
[Code]
 | 
			
		||||
/////////////////////////////////////////////////////////////////////
 | 
			
		||||
// these are required for x86->x64 or reverse upgrades
 | 
			
		||||
/////////////////////////////////////////////////////////////////////
 | 
			
		||||
function GetUninstallString(): String;
 | 
			
		||||
var
 | 
			
		||||
	sUnInstPath: String;
 | 
			
		||||
	sUnInstallString: String;
 | 
			
		||||
begin
 | 
			
		||||
	sUnInstPath := ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\XChat-WDK (x64)_is1');
 | 
			
		||||
	sUnInstallString := '';
 | 
			
		||||
	if not RegQueryStringValue(HKLM, sUnInstPath, 'UninstallString', sUnInstallString) then
 | 
			
		||||
		RegQueryStringValue(HKCU, sUnInstPath, 'UninstallString', sUnInstallString);
 | 
			
		||||
	Result := sUnInstallString;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/////////////////////////////////////////////////////////////////////
 | 
			
		||||
function IsUpgrade(): Boolean;
 | 
			
		||||
begin
 | 
			
		||||
	Result := (GetUninstallString() <> '');
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/////////////////////////////////////////////////////////////////////
 | 
			
		||||
function UnInstallOldVersion(): Integer;
 | 
			
		||||
var
 | 
			
		||||
	sUnInstallString: String;
 | 
			
		||||
	iResultCode: Integer;
 | 
			
		||||
begin
 | 
			
		||||
// Return Values:
 | 
			
		||||
// 1 - uninstall string is empty
 | 
			
		||||
// 2 - error executing the UnInstallString
 | 
			
		||||
// 3 - successfully executed the UnInstallString
 | 
			
		||||
 | 
			
		||||
	// default return value
 | 
			
		||||
	Result := 0;
 | 
			
		||||
 | 
			
		||||
	// get the uninstall string of the old app
 | 
			
		||||
	sUnInstallString := GetUninstallString();
 | 
			
		||||
	if sUnInstallString <> '' then begin
 | 
			
		||||
		sUnInstallString := RemoveQuotes(sUnInstallString);
 | 
			
		||||
		if Exec(sUnInstallString, '/SILENT /NORESTART /SUPPRESSMSGBOXES','', SW_HIDE, ewWaitUntilTerminated, iResultCode) then
 | 
			
		||||
			Result := 3
 | 
			
		||||
		else
 | 
			
		||||
			Result := 2;
 | 
			
		||||
	end else
 | 
			
		||||
		Result := 1;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
/////////////////////////////////////////////////////////////////////
 | 
			
		||||
procedure MigrateSettings();
 | 
			
		||||
begin
 | 
			
		||||
  RenameFile(ExpandConstant('{userappdata}\X-Chat 2'), ExpandConstant('{userappdata}\HexChat'));
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
/////////////////////////////////////////////////////////////////////
 | 
			
		||||
function SettingsExistCheck(): Boolean;
 | 
			
		||||
begin
 | 
			
		||||
  if DirExists(ExpandConstant('{userappdata}\X-Chat 2')) then
 | 
			
		||||
    Result := True
 | 
			
		||||
  else
 | 
			
		||||
    Result := False
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
/////////////////////////////////////////////////////////////////////
 | 
			
		||||
procedure CurStepChanged(CurStep: TSetupStep);
 | 
			
		||||
var
 | 
			
		||||
	ErrCode: integer;
 | 
			
		||||
begin
 | 
			
		||||
	if not (IsTaskSelected('portable')) then
 | 
			
		||||
	begin
 | 
			
		||||
 | 
			
		||||
		if (CurStep=ssInstall) then
 | 
			
		||||
		begin
 | 
			
		||||
			if (IsUpgrade()) then
 | 
			
		||||
			begin
 | 
			
		||||
				UnInstallOldVersion();
 | 
			
		||||
			end;
 | 
			
		||||
		end;
 | 
			
		||||
 | 
			
		||||
		if (CurStep=ssPostInstall) then
 | 
			
		||||
		begin
 | 
			
		||||
			if SettingsExistCheck() then begin
 | 
			
		||||
				if SuppressibleMsgBox('Would you like to migrate your existing XChat configuration to HexChat?', mbConfirmation, MB_YESNO or MB_DEFBUTTON2, IDNO) = IDYES then
 | 
			
		||||
					MigrateSettings();
 | 
			
		||||
			end;
 | 
			
		||||
		end;
 | 
			
		||||
 | 
			
		||||
		if (CurStep=ssDone) then
 | 
			
		||||
		begin
 | 
			
		||||
			ShellExec('open', 'http://www.hexchat.org/home/downloads', '', '', SW_SHOW, ewNoWait, ErrCode);
 | 
			
		||||
		end;
 | 
			
		||||
 | 
			
		||||
	end;
 | 
			
		||||
end;
 | 
			
		||||
							
								
								
									
										131
									
								
								win32/installer/xchat-wdk-hexchat-x86.iss
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										131
									
								
								win32/installer/xchat-wdk-hexchat-x86.iss
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,131 @@
 | 
			
		|||
[Setup] 
 | 
			
		||||
WizardImageFile=c:\mozilla build\build\xchat-wdk\win32\bitmaps\wizardimage.bmp 
 | 
			
		||||
WizardSmallImageFile=c:\mozilla build\build\xchat-wdk\win32\bitmaps\wizardsmallimage.bmp 
 | 
			
		||||
AppVerName=XChat-WDK 2.9.0
 | 
			
		||||
AppVersion=2.9.0
 | 
			
		||||
VersionInfoVersion=2.9.0
 | 
			
		||||
OutputBaseFilename=XChat-WDK 2.9.0 x86
 | 
			
		||||
SetupIconFile=c:\mozilla build\build\xchat-wdk\xchat.ico 
 | 
			
		||||
AppName=XChat-WDK
 | 
			
		||||
AppPublisher=XChat-WDK
 | 
			
		||||
AppPublisherURL=http://www.xchat-wdk.org/
 | 
			
		||||
AppCopyright=Copyright (C) 1998-2010 Peter Zelezny
 | 
			
		||||
AppSupportURL=http://code.google.com/p/xchat-wdk/issues/list
 | 
			
		||||
AppUpdatesURL=http://www.xchat-wdk.org/home/downloads
 | 
			
		||||
UninstallDisplayIcon={app}\xchat.exe
 | 
			
		||||
UninstallDisplayName=XChat-WDK
 | 
			
		||||
DefaultDirName={pf}\XChat-WDK
 | 
			
		||||
DefaultGroupName=XChat-WDK
 | 
			
		||||
DisableProgramGroupPage=yes
 | 
			
		||||
DisableDirPage=yes
 | 
			
		||||
DisableReadyPage=yes
 | 
			
		||||
DisableReadyMemo=yes
 | 
			
		||||
SolidCompression=yes
 | 
			
		||||
SourceDir=..\tmp
 | 
			
		||||
OutputDir=..\win32
 | 
			
		||||
FlatComponentsList=no
 | 
			
		||||
PrivilegesRequired=none
 | 
			
		||||
ShowComponentSizes=no
 | 
			
		||||
CreateUninstallRegKey=no
 | 
			
		||||
Uninstallable=no
 | 
			
		||||
ArchitecturesAllowed=x86 x64
 | 
			
		||||
 | 
			
		||||
[Messages]
 | 
			
		||||
BeveledLabel= XChat-WDK
 | 
			
		||||
 | 
			
		||||
[Code]
 | 
			
		||||
/////////////////////////////////////////////////////////////////////
 | 
			
		||||
// these are required for x86->x64 or reverse upgrades
 | 
			
		||||
/////////////////////////////////////////////////////////////////////
 | 
			
		||||
function GetUninstallString(): String;
 | 
			
		||||
var
 | 
			
		||||
	sUnInstPath: String;
 | 
			
		||||
	sUnInstallString: String;
 | 
			
		||||
begin
 | 
			
		||||
	sUnInstPath := ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\XChat-WDK (x86)_is1');
 | 
			
		||||
	sUnInstallString := '';
 | 
			
		||||
	if not RegQueryStringValue(HKLM, sUnInstPath, 'UninstallString', sUnInstallString) then
 | 
			
		||||
		RegQueryStringValue(HKCU, sUnInstPath, 'UninstallString', sUnInstallString);
 | 
			
		||||
	Result := sUnInstallString;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/////////////////////////////////////////////////////////////////////
 | 
			
		||||
function IsUpgrade(): Boolean;
 | 
			
		||||
begin
 | 
			
		||||
	Result := (GetUninstallString() <> '');
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/////////////////////////////////////////////////////////////////////
 | 
			
		||||
function UnInstallOldVersion(): Integer;
 | 
			
		||||
var
 | 
			
		||||
	sUnInstallString: String;
 | 
			
		||||
	iResultCode: Integer;
 | 
			
		||||
begin
 | 
			
		||||
// Return Values:
 | 
			
		||||
// 1 - uninstall string is empty
 | 
			
		||||
// 2 - error executing the UnInstallString
 | 
			
		||||
// 3 - successfully executed the UnInstallString
 | 
			
		||||
 | 
			
		||||
	// default return value
 | 
			
		||||
	Result := 0;
 | 
			
		||||
 | 
			
		||||
	// get the uninstall string of the old app
 | 
			
		||||
	sUnInstallString := GetUninstallString();
 | 
			
		||||
	if sUnInstallString <> '' then begin
 | 
			
		||||
		sUnInstallString := RemoveQuotes(sUnInstallString);
 | 
			
		||||
		if Exec(sUnInstallString, '/SILENT /NORESTART /SUPPRESSMSGBOXES','', SW_HIDE, ewWaitUntilTerminated, iResultCode) then
 | 
			
		||||
			Result := 3
 | 
			
		||||
		else
 | 
			
		||||
			Result := 2;
 | 
			
		||||
	end else
 | 
			
		||||
		Result := 1;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
/////////////////////////////////////////////////////////////////////
 | 
			
		||||
procedure MigrateSettings();
 | 
			
		||||
begin
 | 
			
		||||
  RenameFile(ExpandConstant('{userappdata}\X-Chat 2'), ExpandConstant('{userappdata}\HexChat'));
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
/////////////////////////////////////////////////////////////////////
 | 
			
		||||
function SettingsExistCheck(): Boolean;
 | 
			
		||||
begin
 | 
			
		||||
  if DirExists(ExpandConstant('{userappdata}\X-Chat 2')) then
 | 
			
		||||
    Result := True
 | 
			
		||||
  else
 | 
			
		||||
    Result := False
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
/////////////////////////////////////////////////////////////////////
 | 
			
		||||
procedure CurStepChanged(CurStep: TSetupStep);
 | 
			
		||||
var
 | 
			
		||||
	ErrCode: integer;
 | 
			
		||||
begin
 | 
			
		||||
	if not (IsTaskSelected('portable')) then
 | 
			
		||||
	begin
 | 
			
		||||
 | 
			
		||||
		if (CurStep=ssInstall) then
 | 
			
		||||
		begin
 | 
			
		||||
			if (IsUpgrade()) then
 | 
			
		||||
			begin
 | 
			
		||||
				UnInstallOldVersion();
 | 
			
		||||
			end;
 | 
			
		||||
		end;
 | 
			
		||||
 | 
			
		||||
		if (CurStep=ssPostInstall) then
 | 
			
		||||
		begin
 | 
			
		||||
			if SettingsExistCheck() then begin
 | 
			
		||||
				if SuppressibleMsgBox('Would you like to migrate your existing XChat configuration to HexChat?', mbConfirmation, MB_YESNO or MB_DEFBUTTON2, IDNO) = IDYES then
 | 
			
		||||
					MigrateSettings();
 | 
			
		||||
			end;
 | 
			
		||||
		end;
 | 
			
		||||
 | 
			
		||||
		if (CurStep=ssDone) then
 | 
			
		||||
		begin
 | 
			
		||||
			ShellExec('open', 'http://www.hexchat.org/home/downloads', '', '', SW_SHOW, ewNoWait, ErrCode);
 | 
			
		||||
		end;
 | 
			
		||||
 | 
			
		||||
	end;
 | 
			
		||||
end;
 | 
			
		||||
		Loading…
	
	Add table
		
		Reference in a new issue