mirror of
https://github.com/bisq-network/bisq.git
synced 2024-11-20 10:22:18 +01:00
29cbec1d4f
- Increase the minimum supported OS version to Windows 7 with SP1. Previously it was Windows XP which has been EOL for some time now. Hopefully no one is still using Windows XP. - Show a final dialog once the install has completed. This will inform the user that the install has completed with an option to launch the application. Previously it would skip this final dialog and immediately launch the application, but the user may not want to launch it immediately. - Create an application shortcut on the user's desktop. - Check if the application is running prior to install or uninstall and abort with a prompt to the user that the application must first be closed. - German, French, and Spanish translations. The installer should auto-detect the OS language and display all text in the appropriate language. For now I have just added a couple languages, but it is very easy to add any of the other languages supported by Inno Setup. - Additionally, I removed a few unnecessary items that weren't being utilized such as installing a service.
202 lines
6.0 KiB
Plaintext
202 lines
6.0 KiB
Plaintext
;This file will be executed next to the application bundle image
|
|
;I.e. current directory will contain folder Bisq with application files
|
|
;Note: This file must use UTF-8 encoding with BOM
|
|
|
|
#define SourceDir GetEnv('package_dir') + '\windows'
|
|
|
|
[Setup]
|
|
AppId={{bisq}}
|
|
AppName=Bisq
|
|
AppVersion=0.9.1
|
|
AppVerName=Bisq
|
|
AppPublisher=Bisq
|
|
AppCopyright=Copyright (C) 2018
|
|
AppComments={cm:AppComments}
|
|
AppPublisherURL=https://bisq.network
|
|
AppSupportURL=https://bisq.network
|
|
;AppUpdatesURL=http://java.com/
|
|
DefaultDirName={localappdata}\Bisq
|
|
DisableStartupPrompt=Yes
|
|
DisableDirPage=Yes
|
|
DisableProgramGroupPage=Yes
|
|
DisableReadyPage=No
|
|
DisableFinishedPage=No
|
|
DisableWelcomePage=Yes
|
|
DefaultGroupName=Bisq
|
|
;Optional License
|
|
LicenseFile=
|
|
OutputBaseFilename=Bisq
|
|
;Windows 7 with Service Pack 1 or above
|
|
MinVersion=0,6.1.7601
|
|
Compression=lzma
|
|
SolidCompression=yes
|
|
PrivilegesRequired=lowest
|
|
SetupIconFile=Bisq\Bisq.ico
|
|
UninstallDisplayIcon={app}\Bisq.ico
|
|
UninstallDisplayName=Bisq
|
|
WizardImageFile={#SourceDir}\Bisq-setup-image.bmp
|
|
WizardImageStretch=No
|
|
WizardSmallImageFile=Bisq-setup-icon.bmp
|
|
ArchitecturesInstallIn64BitMode=x64
|
|
ShowLanguageDialog=No
|
|
|
|
[Languages]
|
|
Name: en; MessagesFile: "compiler:Default.isl"
|
|
Name: de; MessagesFile: "compiler:Languages\German.isl"
|
|
Name: fr; MessagesFile: "compiler:Languages\French.isl"
|
|
Name: sp; MessagesFile: "compiler:Languages\Spanish.isl"
|
|
|
|
[CustomMessages]
|
|
en.AppComments=The decentralized exchange network
|
|
en.AppIsRunning=Bisq is running, please close it and run setup again.
|
|
de.AppComments=Das dezentrale Austauschnetzwerk
|
|
de.AppIsRunning=Bisq läuft, bitte schließen Sie es und führen Sie das Setup erneut aus.
|
|
fr.AppComments=Le réseau d'échange décentralisé
|
|
fr.AppIsRunning=Bisq est en cours d'exécution, fermez-le et exécutez à nouveau le programme d'installation.
|
|
sp.AppComments=La red de intercambio descentralizado
|
|
sp.AppIsRunning=Bisq se está ejecutando, ciérrelo y vuelva a ejecutar la configuración.
|
|
|
|
[Files]
|
|
Source: "Bisq\Bisq.exe"; DestDir: "{app}"; Flags: ignoreversion
|
|
Source: "Bisq\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
|
|
|
[Icons]
|
|
Name: "{group}\Bisq"; Filename: "{app}\Bisq.exe"; IconFilename: "{app}\Bisq.ico"
|
|
Name: "{userdesktop}\Bisq"; Filename: "{app}\Bisq.exe"; IconFilename: "{app}\Bisq.ico"
|
|
|
|
[Run]
|
|
Filename: "{app}\Bisq.exe"; Description: "{cm:LaunchProgram,Bisq}"; Flags: nowait postinstall skipifsilent
|
|
|
|
[Code]
|
|
procedure DirectoryCopy(SourcePath, DestPath: string);
|
|
var
|
|
FindRec: TFindRec;
|
|
SourceFilePath: string;
|
|
DestFilePath: string;
|
|
begin
|
|
if FindFirst(SourcePath + '\*', FindRec) then
|
|
begin
|
|
try
|
|
repeat
|
|
if (FindRec.Name <> '.') and (FindRec.Name <> '..') then
|
|
begin
|
|
SourceFilePath := SourcePath + '\' + FindRec.Name;
|
|
DestFilePath := DestPath + '\' + FindRec.Name;
|
|
if FindRec.Attributes and FILE_ATTRIBUTE_DIRECTORY = 0 then
|
|
begin
|
|
if FileCopy(SourceFilePath, DestFilePath, False) then
|
|
begin
|
|
Log(Format('Copied %s to %s', [SourceFilePath, DestFilePath]));
|
|
end
|
|
else
|
|
begin
|
|
Log(Format('Failed to copy %s to %s', [SourceFilePath, DestFilePath]));
|
|
end;
|
|
end
|
|
else
|
|
begin
|
|
if DirExists(DestFilePath) or CreateDir(DestFilePath) then
|
|
begin
|
|
Log(Format('Created %s', [DestFilePath]));
|
|
DirectoryCopy(SourceFilePath, DestFilePath);
|
|
end
|
|
else
|
|
begin
|
|
Log(Format('Failed to create %s', [DestFilePath]));
|
|
end;
|
|
end;
|
|
end;
|
|
until not FindNext(FindRec);
|
|
finally
|
|
FindClose(FindRec);
|
|
end;
|
|
end
|
|
else
|
|
begin
|
|
Log(Format('Failed to list %s', [SourcePath]));
|
|
end;
|
|
end;
|
|
|
|
//Delete old app directory to prevent issues during update
|
|
procedure DeleteOldAppDataDirectory;
|
|
var
|
|
entry: String;
|
|
begin
|
|
entry := ExpandConstant('{localappdata}') + '\Bisq\';
|
|
if DirExists(entry) then begin
|
|
DelTree(entry, true, true, true);
|
|
end;
|
|
end;
|
|
|
|
procedure DeleteTorFiles;
|
|
var
|
|
mainnetDir: String;
|
|
torDir: String;
|
|
hiddenServiceDir: String;
|
|
hiddenServiceBackupDir : String;
|
|
begin
|
|
mainnetDir := ExpandConstant('{userappdata}') + '\Bisq\btc_mainnet';
|
|
torDir := mainnetDir + '\tor\*';
|
|
hiddenServiceDir := mainnetDir + '\tor\hiddenservice';
|
|
hiddenServiceBackupDir := mainnetDir + '\hiddenservice_backup';
|
|
if DirExists(hiddenServiceDir) then begin
|
|
if DirExists(hiddenServiceBackupDir) then begin
|
|
DelTree(hiddenServiceBackupDir, true, true, true);
|
|
end;
|
|
CreateDir(hiddenServiceBackupDir);
|
|
DirectoryCopy(hiddenServiceDir, hiddenServiceBackupDir);
|
|
DelTree(torDir, false, true, true);
|
|
CreateDir(hiddenServiceDir);
|
|
DirectoryCopy(hiddenServiceBackupDir, hiddenServiceDir);
|
|
end;
|
|
end;
|
|
|
|
function PrepareToInstall(var NeedsRestart: Boolean): String;
|
|
begin
|
|
DeleteOldAppDataDirectory;
|
|
DeleteTorFiles;
|
|
Result := '';
|
|
end;
|
|
|
|
function IsAppRunning(): Boolean;
|
|
var
|
|
FSWbemLocator : Variant;
|
|
FWMIService : Variant;
|
|
FWbemObjectSet : Variant;
|
|
ExecutablePath : String;
|
|
begin
|
|
Result := False;
|
|
ExecutablePath := Format('%s\Bisq\Bisq.exe', [ExpandConstant('{localappdata}')])
|
|
StringChangeEx(ExecutablePath, '\', '\\', True);
|
|
try
|
|
FSWbemLocator := CreateOleObject('WBEMScripting.SWBEMLocator');
|
|
FWMIService := FSWbemLocator.ConnectServer('localhost', 'root\CIMV2', '', '');
|
|
FWbemObjectSet := FWMIService.ExecQuery(Format('SELECT Name FROM Win32_Process Where ExecutablePath="%s"', [ExecutablePath]));
|
|
Result := (FWbemObjectSet.Count > 0);
|
|
FWbemObjectSet := Unassigned;
|
|
FWMIService := Unassigned;
|
|
FSWbemLocator := Unassigned;
|
|
except
|
|
end;
|
|
end;
|
|
|
|
function InitializeSetup(): Boolean;
|
|
begin
|
|
Result := True;
|
|
if IsAppRunning() then
|
|
begin
|
|
MsgBox(ExpandConstant('{cm:AppIsRunning}'), mbCriticalError, MB_OK);
|
|
Result := False;
|
|
end;
|
|
end;
|
|
|
|
function InitializeUninstall(): Boolean;
|
|
begin
|
|
Result := True;
|
|
if IsAppRunning() then
|
|
begin
|
|
MsgBox(ExpandConstant('{cm:AppIsRunning}'), mbCriticalError, MB_OK);
|
|
Result := False;
|
|
end;
|
|
end;
|