Add script for building Windows installer

This script tells Inno Setup how to build the stand alone installer

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{2E6818B6-DA37-4D45-8FED-88A6EED6CD08}
AppName=Software Carpentry Windows Installer
AppVersion=0.1
;AppVerName=Software Carpentry Windows Installer 0.1
AppPublisher=Software Carpentry
AppPublisherURL=http://software-carpentry.org
AppSupportURL=http://software-carpentry.org
AppUpdatesURL=http://software-carpentry.org
DefaultDirName={pf}\swc-installer
DefaultGroupName=Software Carpentry Windows Installer
DisableProgramGroupPage=yes
OutputBaseFilename=SWCarpentryInstaller
SetupIconFile=software-carpentry-logo.ico
Compression=lzma
SolidCompression=yes

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Files]
Source: "dist\swc-windows-installer.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "dist\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\Software Carpentry Windows Installer"; Filename: "{app}\swc-windows-installer.exe"

[Run]
Filename: "{app}\swc-windows-installer.exe"; Description: "{cm:LaunchProgram,Software Carpentry Windows Installer}"; Flags: nowait postinstall skipifsilent

error: pathspec 'swc-installer.iss' did not match any file(s) known to git


Added MFT Agent installation script

Added MFT Agent installation script

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
; ************************************************************************
; Copyright (c) IBM Corporation 2016
; Licensed under the Apache License, Version 2.0 (the "License");
; you may not use this file except in compliance with the License.
; You may obtain a copy of the License at
; http://www.apache.org/licenses/LICENSE-2.0
; Unless required by applicable law or agreed to in writing, software
; distributed under the License is distributed on an "AS IS" BASIS,
; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
; See the License for the specific
;  Contributors:
;    Shashikanth Rao T - Initial Contribution
;***************************************************************************
; This installation script is developed using a trial version of Inno Setup.
; The script demonstrates how MFT redistributable Agent binaries can be
; bundled into another product's installation package and deployed.
;***************************************************************************
#define MyAppName "MFT Agent"
#define MyAppVersion "1.5"
#define MyAppPublisher "IBM Corp"
#define MyAppURL "http://www.ibm.com/"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{4E1BA108-409D-45CA-90D7-BCD7B6A04C15}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName=C:\MFT91\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputBaseFilename={#MyAppName}
Compression=lzma
SolidCompression=yes
; Tell Windows Explorer to reload the environment
ChangesEnvironment=yes

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Files]
Source: "C:\Downloads\IBM-MQFA-Redist-Win64\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Registry]
; set PATH
Root: HKCU; Subkey: "Environment"; ValueType:string; ValueName:"BFG_DATA"; ValueData:"{code:GetAgentConfigDataPath}" ; Flags: preservestringtype ;

[Run]
;Flags: "64bit"

; Setup Coordination
Filename: "{app}\bin\fteSetupCoordination.cmd"; Parameters: " -coordinationQMgr {code:GetCoordinationQmgrName} -coordinationQMgrHost {code:GetCoordinationQmgrNameHost} -coordinationQMgrPort {code:GetCoordinationQmgrNamePort} -coordinationQMgrChannel {code:GetCoordinationQmgrNameChannel} -f > {app}\instlog.txt"

; Setup Command
Filename: "{app}\bin\fteSetupCommands.cmd"; Parameters: " -p {code:GetCoordinationQmgrName} -connectionQMgr  {code:GetCommandQmgrName} -connectionQMgrHost {code:GetCommandQmgrNameHost} -coordinationQMgrPort {code:GetCommandQmgrNamePort} -connectionQMgrChannel  {code:GetCommandQmgrNameChannel} -f >> {app}\instlog.txt"

; Setup an agent
Filename: "{app}\bin\fteCreateAgent.cmd"; Parameters: " -p {code:GetCoordinationQmgrName} -agentName {code:GetAgentName} -agentQMgr {code:GetAgentQmgrName} -agentQMgrHost  {code:GetAgentQmgrHost} -agentQMgrPort {code:GetAgentQmgrPort} -agentQMgrChannel  {code:GetAgentQmgrChannel} -f >> {app}\instlog.txt"

[Code]
const
  OffsetPixels = 11;

procedure OffsetPageItem(Page: TInputQueryWizardPage; Index,
  Offset: Integer);
begin
  Page.Edits[Index].Top := Page.Edits[Index].Top + Offset;
  Page.PromptLabels[Index].Top := Page.PromptLabels[Index].Top +
    Offset;
end;

var
  ConfigDataPathPage: TInputQueryWizardPage;
  CoordinationQmgrPage: TInputQueryWizardPage;
  CommandQmgrPage: TInputQueryWizardPage;
  AgentNamePage: TInputQueryWizardPage;
  Index: Integer;

{ Get Coordination queue manager details}
function GetCoordinationQmgrName(Value: string): string;
begin
  Result := CoordinationQmgrPage.Values[0];
end;

function GetCoordinationQmgrNameHost(Value: string): string;
begin
  Result := CoordinationQmgrPage.Values[1];
end;

function GetCoordinationQmgrNamePort(Value: string): string;
begin
  Result := CoordinationQmgrPage.Values[2];
end;

function GetCoordinationQmgrNameChannel(Value: string): string;
begin
  Result := CoordinationQmgrPage.Values[3];
end;

{Get Command queue manager details}
function GetCommandQmgrName(Value: string): string;
begin
  Result := CommandQmgrPage.Values[0];
end;

function GetCommandQmgrNameHost(Value: string): string;
begin
  Result := CommandQmgrPage.Values[1];
end;

function GetCommandQmgrNamePort(Value: string): string;
begin
  Result := CommandQmgrPage.Values[2];
end;

function GetCommandQmgrNameChannel(Value: string): string;
begin
  Result := CommandQmgrPage.Values[3];
end;

{ Get Agent details}
function GetAgentName(Value: string): string;
begin
  Result := AgentNamePage.Values[0];
end;

function GetAgentQmgrName(Value: string): string;
begin
  Result := AgentNamePage.Values[1];
end;

function GetAgentQmgrHost(Value: string): string;
begin
  Result := AgentNamePage.Values[2];
end;

function GetAgentQmgrPort(Value: string): string;
begin
  Result := AgentNamePage.Values[3];
end;

function GetAgentQmgrChannel(Value: string): string;
begin
  Result := AgentNamePage.Values[4];
end;

function GetAgentConfigDataPath(Value: string): string;
begin
  Result := ConfigDataPathPage.Values[0];
end;

{End of Gets}

#ifdef UNICODE
  #define AW "W"
#else
  #define AW "A"
#endif

function SetEnvironmentVariable(lpName: string; lpValue: string): BOOL;
  external 'SetEnvironmentVariable{#AW}@kernel32.dll stdcall';

procedure SetEnvPath;
begin
  if not SetEnvironmentVariable('BFG_DATA', '{code:GetAgentConfigDataPath}') then
    MsgBox(SysErrorMessage(DLLGetLastError), mbError, MB_OK);
end;

procedure InitializeWizard;
begin
  { Create the Configuration Data Path page}
  ConfigDataPathPage := CreateInputQueryPage(wpSelectDir,
    'Configure Data Path', '',
    'Please specify path for storing configuration data, then click Next.');
  ConfigDataPathPage.Add('Configuration Data Path:', False);

  { Create the Coordination Queue Manager Setup page}
  CoordinationQmgrPage := CreateInputQueryPage(ConfigDataPathPage.ID,
    'Coordination Queue Manager Setup', '',
    'Please specify Coordination Queue Manager information, then click Next.');
  CoordinationQmgrPage.Add('Queue Manager Name:', False);
  CoordinationQmgrPage.Add('Host Name:', False);
  CoordinationQmgrPage.Add('Port:', False);
  CoordinationQmgrPage.Add('Channel:', False);

  CoordinationQmgrPage.Values[0] := ExpandConstant('COORDQM');
  CoordinationQmgrPage.Values[1] := ExpandConstant('coordqm.mycomp.com');
  CoordinationQmgrPage.Values[2] := ExpandConstant('1414');
  CoordinationQmgrPage.Values[3] := ExpandConstant('APPSVRCONN');

  { Create the Command Queue Manager Setup page}
  CommandQmgrPage := CreateInputQueryPage(CoordinationQmgrPage.ID,
    'Command Queue Manager Setup', '',
    'Please specify Command Queue Manager information, then click Next..');
  CommandQmgrPage.Add('Queue Manager Name)', False);
  CommandQmgrPage.Add('Host Name',False);
  CommandQmgrPage.Add('Port', False);
  CommandQmgrPage.Add('Channel Name', False);

  CommandQmgrPage.Values[0] := ExpandConstant('CMDQM');
  CommandQmgrPage.Values[1] := ExpandConstant('cmdqm.mycomp.com');
  CommandQmgrPage.Values[2] := ExpandConstant('1414');
  CommandQmgrPage.Values[3] := ExpandConstant('APPSVRCONN');

  { Create the Agent Setup page}
  AgentNamePage := CreateInputQueryPage(CommandQmgrPage.ID,
    'Agent Setup', '',
    'Please provide information required for creating an agent');
  Index := AgentNamePage.Add('Agent Name:', False);
  Index := AgentNamePage.Add('Queue Manager Name:', False);
  OffsetPageItem(AgentNamePage, Index, -Index * OffsetPixels);
  Index := AgentNamePage.Add('Host Name:', False);
  OffsetPageItem(AgentNamePage, Index, -Index * OffsetPixels);
  Index := AgentNamePage.Add('Port :', False);
  OffsetPageItem(AgentNamePage, Index, -Index * OffsetPixels);
  Index := AgentNamePage.Add('Channel Name:', False);
  OffsetPageItem(AgentNamePage, Index, -Index * OffsetPixels);

  AgentNamePage.Values[0] := ExpandConstant('ZIPAGENT');
  AgentNamePage.Values[1] := ExpandConstant('ZIPAGENTQM');
  AgentNamePage.Values[2] := ExpandConstant('zipagentqm.mycomp.com');
  AgentNamePage.Values[3] := ExpandConstant('1414');
  AgentNamePage.Values[4] := ExpandConstant('APPSVRCONN');

end;

procedure RegisterPreviousData(PreviousDataKey: Integer);

begin
  { Store the settings so we can restore them next time }
  SetPreviousData(PreviousDataKey, 'CoordinationQmgrName', CoordinationQmgrPage.Values[0]);
  SetPreviousData(PreviousDataKey, 'CoordinationQmgrNameHost', CoordinationQmgrPage.Values[1]);
  SetPreviousData(PreviousDataKey, 'CoordinationQmgrNamePort', CoordinationQmgrPage.Values[2]);
  SetPreviousData(PreviousDataKey, 'CoordinationQmgrNameChannel', CoordinationQmgrPage.Values[3]);

  SetPreviousData(PreviousDataKey, 'CommandQmgrName', CommandQmgrPage.Values[0]);
  SetPreviousData(PreviousDataKey, 'CommandQmgrNameHost', CommandQmgrPage.Values[1]);
  SetPreviousData(PreviousDataKey, 'CommandQmgrNamePort', CommandQmgrPage.Values[2]);
  SetPreviousData(PreviousDataKey, 'CommandQmgrNameChannel', CommandQmgrPage.Values[3]);

  SetPreviousData(PreviousDataKey, 'AgentName', AgentNamePage.Values[0]);
  SetPreviousData(PreviousDataKey, 'AgentQmgrName', AgentNamePage.Values[1]);
  SetPreviousData(PreviousDataKey, 'AgentQmgrNameHost', AgentNamePage.Values[2]);
  SetPreviousData(PreviousDataKey, 'AgentQmgrNamePort', AgentNamePage.Values[3]);
  SetPreviousData(PreviousDataKey, 'AgentQmgrNameChannel', AgentNamePage.Values[4]);
end;

function NextButtonClick(CurPageID: Integer): Boolean;

begin
  { Validate certain pages before allowing the user to proceed }
  if CurPageID = CoordinationQmgrPage.ID then begin
    if CoordinationQmgrPage.Values[0] = '' then begin
      MsgBox('You must enter coordination queue manager name.', mbError, MB_OK);
      Result := False;
    end else if CoordinationQmgrPage.Values[1] = '' then begin
      MsgBox('You must enter coordination queue manager host name.', mbError, MB_OK);
      Result := False;
    end else if CoordinationQmgrPage.Values[2] = '' then begin
      MsgBox('You must enter coordination queue manager port number.', mbError, MB_OK);
      Result := False;
    end else if CoordinationQmgrPage.Values[3] = '' then begin
      MsgBox('You must enter coordination queue manager channel name.', mbError, MB_OK);
      Result := False;
    end else begin
      Result := True;
    end;
  end else if CurPageID = CommandQmgrPage.ID then begin
    if CommandQmgrPage.Values[0] = '' then begin
      MsgBox('You must enter command queue manager name.', mbError, MB_OK);
      Result := False;
    end else if CommandQmgrPage.Values[1] = '' then begin
      MsgBox('You must enter command queue manager host name.', mbError, MB_OK);
      Result := False;
    end else if CommandQmgrPage.Values[2] = '' then begin
      MsgBox('You must enter command queue manager port number.', mbError, MB_OK);
      Result := False;
    end else if CommandQmgrPage.Values[3] = '' then begin
      MsgBox('You must enter command queue manager channel name.', mbError, MB_OK);
      Result := False;
    end else begin
      Result := True;
    end;
  end else if CurPageID =  AgentNamePage.ID then begin
    if AgentNamePage.Values[0] = '' then begin
      MsgBox('You must enter Agent name.', mbError, MB_OK);
      Result := False;
    end else if AgentNamePage.Values[1] = '' then begin
      MsgBox('You must enter agent queue manager host name.', mbError, MB_OK);
      Result := False;
    end else if AgentNamePage.Values[2] = '' then begin
      MsgBox('You must enter agent queue manager port number.', mbError, MB_OK);
      Result := False;
    end else if AgentNamePage.Values[3] = '' then begin
      MsgBox('You must enter agent queue manager channel name.', mbError, MB_OK);
      Result := False;
    end else if AgentNamePage.Values[4] = '' then begin
      MsgBox('You must enter agent queue manager channel name.', mbError, MB_OK);
      Result := False;
    end else begin
      Result := True;
    end;
  end else
      Result := True;
end;

function UpdateReadyMemo(Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo,
  MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String;
var
  S: String;
begin
  { Fill the 'Ready Memo' with the normal settings and the custom settings }
  S := '';

  S := S + Space + 'Data Folder' + Space + ConfigDataPathPage.Values[0] + NewLine;

  S := S + Space + 'Coordination Queue Manager Name' + Space + CoordinationQmgrPage.Values[0] + NewLine;
  S := S + Space + 'Coordination Queue Manager Host Name' + Space + CoordinationQmgrPage.Values[1] + NewLine;
  S := S + Space + 'Coordination Queue Manager Port' + Space + CoordinationQmgrPage.Values[2] + NewLine;
  S := S + Space + 'Coordination Queue Manager Channel Name' + Space + CoordinationQmgrPage.Values[3] + NewLine;

  S := S + NewLine;

  S := S + Space + 'Command Queue Manager Name' + Space + CommandQmgrPage.Values[0] + NewLine;
  S := S + Space + 'Command Queue Manager Host Name' + Space + CommandQmgrPage.Values[1] + NewLine;
  S := S + Space + 'Command Queue Manager Port' + Space + CommandQmgrPage.Values[2] + NewLine;
  S := S + Space + 'Command Queue Manager Channel Name' + Space + CommandQmgrPage.Values[3] + NewLine;

  S := S + NewLine;

  S := S + Space + 'Agent Name' + Space + AgentNamePage.Values[0] + NewLine;
  S := S + Space + 'Agent Queue Manager Name' + Space + AgentNamePage.Values[1] + NewLine;
  S := S + Space + 'Agent Queue Manager Host Name' + Space + AgentNamePage.Values[2] + NewLine;
  S := S + Space + 'Agent Queue Manager Port' + Space + AgentNamePage.Values[3] + NewLine;
  S := S + Space + 'Agent Queue Manager Channel Name' + Space + AgentNamePage.Values[4] + NewLine;

  S := S + NewLine;
  Result := S;
end;

function GetUser(Param: String): String;
begin
  { Return a user value }
  { Could also be split into separate GetUserName and GetUserCompany functions }
  if Param = 'Name' then
    Result := CoordinationQmgrPage.Values[0]
  else if Param = 'Company' then
    Result := CoordinationQmgrPage.Values[1];
end;

error: pathspec 'mft.redistributable/mftzipsetup.iss' did not match any file(s) known to git


*** empty log message ***

*** empty log message ***

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/axbannaz/RemoteFunctionCall.git/'


Forget to push main Setup.iss xD

Forget to push main Setup.iss xD

; Script generated by the Inno Script Studio Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "Line Theme Studio"
#define MyAppVersion "1.4.2"
#define MyAppPublisher "Khayalan Software"
#define MyAppURL "http://www.khayalan.id/"
#define MyAppExeName "LineTS.exe"

#include "isxbb.iss"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{CCC7050E-2A93-4420-8271-8195F4EAF2B2}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
LicenseFile=D:\projects\LineTS\License.rtf
OutputBaseFilename=LineTS_setup
SetupIconFile=D:\projects\LineTS\mainico.ico
Compression=lzma/ultra
SolidCompression=yes
WindowVisible=True
BackColor=$0048C000
BackSolid=True
WindowResizable=False
InternalCompressLevel=ultra
DisableWelcomePage=no
MinVersion=0,5.01sp3
WizardImageFile=D:\projects\LineTS\SideImage.bmp

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "indonesia"; MessagesFile: "Indonesian.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"

[Files]
Source: "SetupBB.jpg"; DestDir: {tmp}; CopyMode: dontcopy
Source: "D:\projects\LineTS\LineTS.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\projects\LineTS\FastMM_FullDebugMode.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\projects\LineTS\Help.chm"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\projects\LineTS\LICENSE"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\projects\LineTS\License.rtf"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\projects\LineTS\ThemeLst.ini"; DestDir: "{app}"; Flags: ignoreversion
Source: "AdbExec\*"; DestDir: "{app}\AdbExec"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "Extras\*"; DestDir: "{app}\Extras"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "fotografix\*"; DestDir: "{app}\fotografix"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "Template\*"; DestDir: "{app}\Template"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; WorkingDir: "{app}"; Tasks: desktopicon

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

[Code]

procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssInstall then
    begin
    ExtractTemporaryFile('SetupBB.jpg');
    isxbb_AddImage(ExpandConstant('{tmp}')+'\SetupBB.jpg', CENTER);
    isxbb_Init(StrToInt(ExpandConstant('{hwnd}')));
  end;
end;

procedure CurInstallProgressChanged(CurProgress, MaxProgress: Integer);
begin
  Sleep(50);
end;

error: pathspec 'Setup.iss' did not match any file(s) known to git


Add inno setup script

Add inno setup script

; Script generated by the Inno Script Studio Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "Enotepad"
#define MyAppVersion "1.0.0"
#define MyAppPublisher "aaronps"
#define MyAppURL "https://github.com/aaronps/enotepad"
#define MyAppExeName "enotepad.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{DFE19C2A-6473-4CCB-9545-2960EB30A2F9}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputBaseFilename=enotepad-setup
Compression=lzma
SolidCompression=yes
ArchitecturesInstallIn64BitMode=x64

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "..\releases\reltool\enotepad.exe"; DestDir: "{app}"; Flags: ignoreversion 64bit
Source: "..\releases\reltool\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs 64bit
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

error: pathspec 'installer/enotepad-installer.iss' did not match any file(s) known to git


Add Bitsquare.iss file as produced by javapackager

This file was produced by adding a `-v` flag following the `-deploy`
flag in `package/windows.bat`. The creation of the file is reported by
javapackager as follows:

    Config files are saved to
    C:\Users\CBEAMS~1.WIN\AppData\Local\Temp\fxbundler5661616451276716144\windows.
    Use them to customize package.

Subsequent commits will customize this file, primarily for the purpose
of avoid the dreaded 'missing dll' errors mentioned originally in
d16c274 and detailed at https://bitbucket.org/shemnon/javafx-gradle/issue/43.

;This file will be executed next to the application bundle image
;I.e. current directory will contain folder Bitsquare with application files
[Setup]
AppId={{io.bitsquare.app.gui}}
AppName=Bitsquare
AppVersion=0.1.0
AppVerName=Bitsquare 0.1.0
AppPublisher=Bitsquare
AppComments=Bitsquare
AppCopyright=Copyright (C) 2014
;AppPublisherURL=http://java.com/
;AppSupportURL=http://java.com/
;AppUpdatesURL=http://java.com/
DefaultDirName={localappdata}\Bitsquare
DisableStartupPrompt=Yes
DisableDirPage=Yes
DisableProgramGroupPage=Yes
DisableReadyPage=Yes
DisableFinishedPage=Yes
DisableWelcomePage=Yes
DefaultGroupName=Bitsquare
;Optional License
LicenseFile=
;WinXP or above
MinVersion=0,5.1
OutputBaseFilename=Bitsquare-0.1.0
Compression=lzma
SolidCompression=yes
PrivilegesRequired=lowest
SetupIconFile=Bitsquare\Bitsquare.ico
UninstallDisplayIcon={app}\Bitsquare.ico
UninstallDisplayName=Bitsquare
WizardImageStretch=No
WizardSmallImageFile=Bitsquare-setup-icon.bmp
ArchitecturesInstallIn64BitMode=x64

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Files]
Source: "Bitsquare\Bitsquare.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "Bitsquare\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs

[Icons]
Name: "{group}\Bitsquare"; Filename: "{app}\Bitsquare.exe"; IconFilename: "{app}\Bitsquare.ico"; Check: returnTrue()
Name: "{commondesktop}\Bitsquare"; Filename: "{app}\Bitsquare.exe";  IconFilename: "{app}\Bitsquare.ico"; Check: returnFalse()

[Run]
Filename: "{app}\Bitsquare.exe"; Description: "{cm:LaunchProgram,Bitsquare}"; Flags: nowait postinstall skipifsilent; Check: returnTrue()
Filename: "{app}\Bitsquare.exe"; Parameters: "-install -svcName ""Bitsquare"" -svcDesc ""Bitsquare"" -mainExe ""Bitsquare.exe""  "; Check: returnFalse()

[UninstallRun]
Filename: "{app}\Bitsquare.exe "; Parameters: "-uninstall -svcName Bitsquare -stopOnUninstall"; Check: returnFalse()

[Code]
function returnTrue(): Boolean;
begin
  Result := True;
end;

function returnFalse(): Boolean;
begin
  Result := False;
end;

function InitializeSetup(): Boolean;
begin
// Possible future improvements:
//   if version less or same => just launch app
//   if upgrade => check if same app is running and wait for it to exit
//   Add pack200/unpack200 support?
  Result := True;
end;

error: pathspec 'package/windows/Bitsquare.iss' did not match any file(s) known to git


Installer script for version 2.11

Installer script for version 2.11

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/Xangis/MIDIPlayer.git/'


[CAS-501]

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/komarVadim/colt-build.git/'


File no longer needed

File no longer needed

error: pathspec 'Setup' did not match any file(s) known to git
error: pathspec 'Script.iss' did not match any file(s) known to git


Added InnoSetup build script

Added InnoSetup build script

InnoSetup can create a fully standalone installation setup for
the LicenseManager.

InnoSetup is a free installer toolkit for Windows.
More infos: http://www.jrsoftware.org/isinfo.php

;
; LicenseManager - Inno Setup script file
; =======================================
;
; Description:  Generate a setup file for Windows
; Author:       Jan Bucher
;
; HowTo "Build a setup file":
;   1. Build LicenseManager with Visual Studio 2013 (or higher) in RELEASE Mode
;   2. Install InnoSetup (if not already done)
;   3. Open this file in the Inno Setup Compiler
;   4. Change the constant "SourceDir" to the directory of the LicenseManager sources
;   5. Change the constant "MyAppVersion" to the new version
;   6. Build!
;

#define SourceDir "C:\git\LicenseManager"
; SourceDir Tipp: Do not use a network directory! Do not add a "\" at the end!

#define MyAppName "LicenseManager"
#define MyAppVersion "0.5"
#define MyAppPublisher "DEV-JAN"
#define MyAppURL "http://dev-jan.github.io/LicenseManager/"
#define MyAppExeName "LicenseManager.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
AppId={{85AC1314-643F-4AA4-A9DD-598E35CBE125}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
AllowNoIcons=yes
LicenseFile={#SourceDir}\LICENSE
OutputBaseFilename={#MyAppName}_{#MyAppVersion}_Setup
Compression=lzma
SolidCompression=yes

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "{#SourceDir}\LicenseManager.UI\bin\Release\LicenseManager.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "{#SourceDir}\LicenseManager.UI\bin\Release\LicenseManager.DataAccess.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "{#SourceDir}\LicenseManager.UI\bin\Release\LicenseManager.Logic.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "{#SourceDir}\LicenseManager.UI\bin\Release\LicenseManager.exe.config"; DestDir: "{app}"; Flags: ignoreversion
Source: "{#SourceDir}\LICENSE"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

error: pathspec 'SetupBuilder.iss' did not match any file(s) known to git


Couple more pieces of metadata

Couple more pieces of metadata

#ifndef VERSION
#define VERSION '0.0.0'
#endif

#ifndef VERSIONFULL
#define VERSIONFULL '0.0.0-UNKNOWN'
#endif

#define APPNAME 'FoundationDB SQL Layer'
#define FDB_UPGRADE_GUID '{A95EA002-686E-4164-8356-C715B7F8B1C8}'
#define FDB_VERSION_STR '1.0.1'
#define FDB_VERSION_NUM '$01000001'

[Setup]
OutputBaseFilename = fdb-sql-layer
AppName = {#APPNAME}
AppVerName = {#APPNAME} {#VERSION}
AppPublisher = FoundationDB, LCC
AppPublisherURL = https://foundationdb.com/
AppVersion = {#VERSION}
AppCopyright = Copyright (c) 2009-2013 FoundationDB, LLC
VersionInfoVersion = {#VERSION}
VersionInfoProductTextVersion = {#VERSIONFULL}
DefaultDirName = {code:DefaultInstallPath}
DefaultGroupName = foundationdb
Compression = lzma
SolidCompression = yes
MinVersion = 5.1
PrivilegesRequired = admin
ArchitecturesInstallIn64BitMode=x64 ia64
LicenseFile=LICENSE-SQL_LAYER.txt
DirExistsWarning = no
SetupIconFile = foundationdb.ico
WizardImageFile = dialog.bmp
WizardSmallImageFile = banner.bmp
WizardImageStretch = no
WizardImageBackColor = clWhite
InfoAfterFile = conclusion.rtf
SignTool=standard

[Tasks]
;Always run as Service, SYSTEM user, and start with windows

[Dirs]
Name: "{code:AppDataDir}\logs\sql"
Name: "{code:AppDataDir}\sql-config"

[Files]
Source: "LICENSE-SQL_LAYER.txt"; DestDir: "{app}"
Source: "bin\*"; DestDir: "{app}\bin"; AfterInstall: EditAfterInstall
Source: "config\*"; DestDir: "{code:AppDataDir}\sql-config"; AfterInstall: EditAfterInstall; Flags: onlyifdoesntexist uninsneveruninstall
Source: "lib\*"; DestDir: "{app}\sql\lib"; Flags: recursesubdirs
Source: "procrun\*"; DestDir: "{app}\sql\procrun"; Flags: recursesubdirs

[Icons]
;Name: "{group}\FoundationDB SQL Layer"; Filename: "{app}\bin\fdbsqllayer.cmd"; Parameters: "window";  WorkingDir: "{app}"; Comment: "Run the server as an application"
;Name: "{group}\Start Service"; Filename: "{app}\bin\fdbsqllayer.cmd"; Parameters: "start";  WorkingDir: "{app}"; Comment: "Start Windows service"
;Name: "{group}\Stop Service"; Filename: "{app}\bin\fdbsqllayer.cmd"; Parameters: "stop";  WorkingDir: "{app}"; Comment: "Stop Windows service"
;Name: "{group}\Monitor Service"; Filename: "{app}\bin\fdbsqllayer.cmd"; Parameters: "monitor";  WorkingDir: "{app}"; Comment: "Monitor Windows service"
;Name: "{group}\Uninstall FoundationDB SQL Layer"; Filename: "{uninstallexe}"

[Run]
Filename: "{app}\bin\fdbsqllayer.cmd"; Parameters: "install -m auto"; WorkingDir: "{app}"; StatusMsg: "Installing service ..."; Flags: runhidden
Filename: "{app}\bin\fdbsqllayer.cmd"; Parameters: "start"; WorkingDir: "{app}"; StatusMsg: "Starting service ..."

[UninstallRun]
Filename: "{app}\bin\fdbsqllayer.cmd"; Parameters: "uninstall";  WorkingDir: "{app}"; StatusMsg: "Removing service ..."; Flags: runhidden

[Code]
//
// Custom functions
//
#ifdef UNICODE
  #define AW "W"
#else
  #define AW "A"
#endif

function MsiEnumRelatedProducts(lpUpgradeCode: String; dwReserved: DWORD; iProductIndex: DWORD; lpProductBuf: String): UINT;
  external 'MsiEnumRelatedProducts{#AW}@msi.dll stdcall';

function FindJava(): String;
var
  JavaLoc : String;
  JavaVersion : String;
  JavaInstalled : Boolean;
begin
  Result := '';
  JavaLoc := 'SOFTWARE\JavaSoft\Java Runtime Environment';
  JavaInstalled := RegKeyExists(HKLM, JavaLoc);

  if not JavaInstalled then begin
    JavaLoc := 'SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment';
    JavaInstalled := RegKeyExists(HKLM, JavaLoc);
  end;

  if JavaInstalled then
    begin
      if RegQueryStringValue(HKLM, JavaLoc, 'CurrentVersion', JavaVersion) then
        begin
          if CompareStr('1.7', JavaVersion) > 0 then
            Result := 'Java version >= 1.7 is required to run {#APPNAME}';
        end
      else
        Result := 'Unable to detect Java version';
    end
  else
    Result := 'Java is required to run {#APPNAME}';
end;

function FindFDBClient(): String;
var
  I : Integer;
  ProductGUID : String;
  FDBClientVersion : Cardinal;
begin
  I := 0;
  SetLength(ProductGUID, 39);

  while MsiEnumRelatedProducts('{#FDB_UPGRADE_GUID}', 0, I, ProductGUID) = 0 do
  begin
    SetLength(ProductGUID, 39);
    I := I + 1;
  end;

  Result := '';
  if I = 0 then
    Result := 'No FoundationDB found. Version >= {#FDB_VERSION_STR} required to run {#APPNAME}'
  else if I > 1 then
    Result := 'Error: Multiple FoundationDB installations found.'
  else
    begin
      if RegQueryDWordValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + ProductGUID, 'Version', FDBClientVersion) then
        begin
          if FDBClientVersion < {#FDB_VERSION_NUM} then
            Result := 'FoundationDB Client version >= {#FDB_VERSION_STR} required to run {#APPNAME}';
        end
      else
        Result := 'Error: No such product ' + ProductGUID;
    end;
end;

function ExpandKey(Key: String) : String;
var
  Value: String;
begin
  if Key = 'datadir' then
    Value := '{code:AppDataDir}\data\sql'
  else if Key = 'confdir' then
    Value := '{code:AppDataDir}\sql-config'
  else if Key = 'logdir' then
    Value := '{code:AppDataDir}\logs\sql'
  else if Key = 'tempdir' then
    Value := '{%TEMP}'
  else
    Value := '';
  Value := ExpandConstant(Value);
  StringChange(Value, '\', '/');
  Result := Value;
end;

procedure EditFile(FileName: String);
var
  FileLines: TArrayOfString;
  Index, DollarBrace, EndBrace: Integer;
  Key: String;
begin
  if FileExists(FileName) then begin
    LoadStringsFromFile(FileName, FileLines);
    for Index := 0 to GetArrayLength(FileLines) - 1 do begin
      DollarBrace := Pos('${', FileLines[Index]);
      if DollarBrace <> 0 then begin
        EndBrace := Pos('}', FileLines[Index]);
        Key := Copy(FileLines[Index], DollarBrace + 2, EndBrace - DollarBrace - 2);
        Delete(FileLines[Index], DollarBrace, EndBrace - DollarBrace + 1);
        Insert(ExpandKey(Key), FileLines[Index], DollarBrace);
      end
    end;
    SaveStringsToFile(FileName, FileLines, false);
  end;
end;

procedure EditAfterInstall();
var
  Path: String;
  FileName: String;
begin
  Path := ExpandConstant(CurrentFileName);
  FileName := ExtractFileName(Path)
  if (FileName = 'fdbsqllayer.cmd') or (FileName = 'log4j.properties') or (FileName = 'server.properties') then
    EditFile(Path)
end;

function AppDataDir(Param: String): String;
begin
  Result := ExpandConstant('{commonappdata}\foundationdb')
end;

function DefaultInstallPath(Param: String): String;
begin;
  Result := GetEnv('FOUNDATIONDB_INSTALL_PATH');
  if Length(Result) = 0 then
    Result := ExpandConstant('{pf}\foundationdb')
end;

//
// Built-In Events
//

function InitializeSetup(): Boolean;
var
  ErrorMsg : String;
begin
  Result := true;
  ErrorMsg := FindJava()
  if Length(ErrorMsg) > 0 then begin
    MsgBox(ErrorMsg, mbError, MB_OK);
    Result := false;
  end;
  ErrorMsg := FindFDBClient();
  if Length(ErrorMsg) > 0 then begin
    MsgBox(ErrorMsg, mbError, MB_OK);
    Result := false;
  end
end;

function PrepareToInstall(var NeedsRestart: Boolean): String;
var
  UninstallKey : String;
  InstallPath : String;
  CmdPath : String;
  ResultCode : Integer;
begin
  UninstallKey := ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\{#APPNAME}_is1');
  if RegQueryStringValue(HKLM, UninstallKey, 'InstallLocation', InstallPath) then begin
    CmdPath := InstallPath + '\bin\fdbsqllayer.cmd';
    if FileExists(CmdPath) then
      Exec(CmdPath, 'uninstall', InstallPath, SW_HIDE, ewWaitUntilTerminated, ResultCode);
  end;
  Result := '';
end;

#ifndef VERSION
#define VERSION '0.0.0'
#endif

#ifndef VERSIONFULL
#define VERSIONFULL '0.0.0-UNKNOWN'
#endif

#define APPNAME 'FoundationDB SQL Layer'
#define FDB_UPGRADE_GUID '{A95EA002-686E-4164-8356-C715B7F8B1C8}'
#define FDB_VERSION_STR '1.0.1'
#define FDB_VERSION_NUM '$01000001'

[Setup]
OutputBaseFilename = fdb-sql-layer
AppName = {#APPNAME}
AppVerName = {#APPNAME} {#VERSION}
AppPublisher = FoundationDB, LCC
AppPublisherURL = https://foundationdb.com/
AppVersion = {#VERSION}
VersionInfoProductTextVersion = {#VERSIONFULL}
DefaultDirName = {code:DefaultInstallPath}
DefaultGroupName = foundationdb
Compression = lzma
SolidCompression = yes
MinVersion = 5.1
PrivilegesRequired = admin
ArchitecturesInstallIn64BitMode=x64 ia64
LicenseFile=LICENSE-SQL_LAYER.txt
DirExistsWarning = no
SetupIconFile = foundationdb.ico
WizardImageFile = dialog.bmp
WizardSmallImageFile = banner.bmp
WizardImageStretch = no
WizardImageBackColor = clWhite
InfoAfterFile = conclusion.rtf
SignTool=standard

[Tasks]
;Always run as Service, SYSTEM user, and start with windows

[Dirs]
Name: "{code:AppDataDir}\logs\sql"
Name: "{code:AppDataDir}\sql-config"

[Files]
Source: "LICENSE-SQL_LAYER.txt"; DestDir: "{app}"
Source: "bin\*"; DestDir: "{app}\bin"; AfterInstall: EditAfterInstall
Source: "config\*"; DestDir: "{code:AppDataDir}\sql-config"; AfterInstall: EditAfterInstall; Flags: onlyifdoesntexist uninsneveruninstall
Source: "lib\*"; DestDir: "{app}\sql\lib"; Flags: recursesubdirs
Source: "procrun\*"; DestDir: "{app}\sql\procrun"; Flags: recursesubdirs

[Icons]
;Name: "{group}\FoundationDB SQL Layer"; Filename: "{app}\bin\fdbsqllayer.cmd"; Parameters: "window";  WorkingDir: "{app}"; Comment: "Run the server as an application"
;Name: "{group}\Start Service"; Filename: "{app}\bin\fdbsqllayer.cmd"; Parameters: "start";  WorkingDir: "{app}"; Comment: "Start Windows service"
;Name: "{group}\Stop Service"; Filename: "{app}\bin\fdbsqllayer.cmd"; Parameters: "stop";  WorkingDir: "{app}"; Comment: "Stop Windows service"
;Name: "{group}\Monitor Service"; Filename: "{app}\bin\fdbsqllayer.cmd"; Parameters: "monitor";  WorkingDir: "{app}"; Comment: "Monitor Windows service"
;Name: "{group}\Uninstall FoundationDB SQL Layer"; Filename: "{uninstallexe}"

[Run]
Filename: "{app}\bin\fdbsqllayer.cmd"; Parameters: "install -m auto"; WorkingDir: "{app}"; StatusMsg: "Installing service ..."; Flags: runhidden
Filename: "{app}\bin\fdbsqllayer.cmd"; Parameters: "start"; WorkingDir: "{app}"; StatusMsg: "Starting service ..."

[UninstallRun]
Filename: "{app}\bin\fdbsqllayer.cmd"; Parameters: "uninstall";  WorkingDir: "{app}"; StatusMsg: "Removing service ..."; Flags: runhidden

[Code]
//
// Custom functions
//
#ifdef UNICODE
  #define AW "W"
#else
  #define AW "A"
#endif

function MsiEnumRelatedProducts(lpUpgradeCode: String; dwReserved: DWORD; iProductIndex: DWORD; lpProductBuf: String): UINT;
  external 'MsiEnumRelatedProducts{#AW}@msi.dll stdcall';

function FindJava(): String;
var
  JavaLoc : String;
  JavaVersion : String;
  JavaInstalled : Boolean;
begin
  Result := '';
  JavaLoc := 'SOFTWARE\JavaSoft\Java Runtime Environment';
  JavaInstalled := RegKeyExists(HKLM, JavaLoc);

  if not JavaInstalled then begin
    JavaLoc := 'SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment';
    JavaInstalled := RegKeyExists(HKLM, JavaLoc);
  end;

  if JavaInstalled then
    begin
      if RegQueryStringValue(HKLM, JavaLoc, 'CurrentVersion', JavaVersion) then
        begin
          if CompareStr('1.7', JavaVersion) > 0 then
            Result := 'Java version >= 1.7 is required to run {#APPNAME}';
        end
      else
        Result := 'Unable to detect Java version';
    end
  else
    Result := 'Java is required to run {#APPNAME}';
end;

function FindFDBClient(): String;
var
  I : Integer;
  ProductGUID : String;
  FDBClientVersion : Cardinal;
begin
  I := 0;
  SetLength(ProductGUID, 39);

  while MsiEnumRelatedProducts('{#FDB_UPGRADE_GUID}', 0, I, ProductGUID) = 0 do
  begin
    SetLength(ProductGUID, 39);
    I := I + 1;
  end;

  Result := '';
  if I = 0 then
    Result := 'No FoundationDB found. Version >= {#FDB_VERSION_STR} required to run {#APPNAME}'
  else if I > 1 then
    Result := 'Error: Multiple FoundationDB installations found.'
  else
    begin
      if RegQueryDWordValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + ProductGUID, 'Version', FDBClientVersion) then
        begin
          if FDBClientVersion < {#FDB_VERSION_NUM} then
            Result := 'FoundationDB Client version >= {#FDB_VERSION_STR} required to run {#APPNAME}';
        end
      else
        Result := 'Error: No such product ' + ProductGUID;
    end;
end;

function ExpandKey(Key: String) : String;
var
  Value: String;
begin
  if Key = 'datadir' then
    Value := '{code:AppDataDir}\data\sql'
  else if Key = 'confdir' then
    Value := '{code:AppDataDir}\sql-config'
  else if Key = 'logdir' then
    Value := '{code:AppDataDir}\logs\sql'
  else if Key = 'tempdir' then
    Value := '{%TEMP}'
  else
    Value := '';
  Value := ExpandConstant(Value);
  StringChange(Value, '\', '/');
  Result := Value;
end;

procedure EditFile(FileName: String);
var
  FileLines: TArrayOfString;
  Index, DollarBrace, EndBrace: Integer;
  Key: String;
begin
  if FileExists(FileName) then begin
    LoadStringsFromFile(FileName, FileLines);
    for Index := 0 to GetArrayLength(FileLines) - 1 do begin
      DollarBrace := Pos('${', FileLines[Index]);
      if DollarBrace <> 0 then begin
        EndBrace := Pos('}', FileLines[Index]);
        Key := Copy(FileLines[Index], DollarBrace + 2, EndBrace - DollarBrace - 2);
        Delete(FileLines[Index], DollarBrace, EndBrace - DollarBrace + 1);
        Insert(ExpandKey(Key), FileLines[Index], DollarBrace);
      end
    end;
    SaveStringsToFile(FileName, FileLines, false);
  end;
end;

procedure EditAfterInstall();
var
  Path: String;
  FileName: String;
begin
  Path := ExpandConstant(CurrentFileName);
  FileName := ExtractFileName(Path)
  if (FileName = 'fdbsqllayer.cmd') or (FileName = 'log4j.properties') or (FileName = 'server.properties') then
    EditFile(Path)
end;

function AppDataDir(Param: String): String;
begin
  Result := ExpandConstant('{commonappdata}\foundationdb')
end;

function DefaultInstallPath(Param: String): String;
begin;
  Result := GetEnv('FOUNDATIONDB_INSTALL_PATH');
  if Length(Result) = 0 then
    Result := ExpandConstant('{pf}\foundationdb')
end;

//
// Built-In Events
//

function InitializeSetup(): Boolean;
var
  ErrorMsg : String;
begin
  Result := true;
  ErrorMsg := FindJava()
  if Length(ErrorMsg) > 0 then begin
    MsgBox(ErrorMsg, mbError, MB_OK);
    Result := false;
  end;
  ErrorMsg := FindFDBClient();
  if Length(ErrorMsg) > 0 then begin
    MsgBox(ErrorMsg, mbError, MB_OK);
    Result := false;
  end
end;

function PrepareToInstall(var NeedsRestart: Boolean): String;
var
  UninstallKey : String;
  InstallPath : String;
  CmdPath : String;
  ResultCode : Integer;
begin
  UninstallKey := ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\{#APPNAME}_is1');
  if RegQueryStringValue(HKLM, UninstallKey, 'InstallLocation', InstallPath) then begin
    CmdPath := InstallPath + '\bin\fdbsqllayer.cmd';
    if FileExists(CmdPath) then
      Exec(CmdPath, 'uninstall', InstallPath, SW_HIDE, ewWaitUntilTerminated, ResultCode);
  end;
  Result := '';
end;


Modified windows installer to use uninstall icon

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/AustralianSynchrotron/sinspect.git/'


installer added

installer added

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "visitas"
#define MyAppVersion "1.0"
#define MyAppPublisher "My Company, Inc."
#define MyAppURL "http://carlosvin.github.io"
#define MyAppExeName "visitsqt.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{3CDA77DC-DDE1-481B-B17B-CC0A1B911F3F}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\visitsqt.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\databasemanager.o"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\icudt52.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\icuin52.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\icuuc52.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\main.o"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\mainwindow.o"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\moc_mainwindow.cpp"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\moc_mainwindow.o"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\moc_visitdelegate.cpp"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\moc_visitdelegate.o"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\moc_visitsmodel.cpp"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\moc_visitsmodel.o"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\qt_cs.qm"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\qt_de.qm"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\qt_fi.qm"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\qt_hu.qm"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\qt_it.qm"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\qt_ja.qm"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\qt_ru.qm"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\qt_sk.qm"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\qt_uk.qm"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\Qt5Core.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\Qt5Gui.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\Qt5Sql.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\Qt5Svg.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\Qt5Widgets.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\visit.o"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\visitdelegate.o"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\visitsmodel.o"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\carlos\build-visitsqt-Desktop_Qt_5_3_MinGW_32bit-Release\release\visitsqt.exe"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

error: pathspec 'installer.iss' did not match any file(s) known to git


made Windows installation 0.11.0

made Windows installation 0.11.0

error: pathspec 'HeeksCNC' did not match any file(s) known to git
error: pathspec 'installer.iss' did not match any file(s) known to git


Installer

Installer

; Inno Setup
#define AppVer GetFileVersion('bin\Release\Ex03_Ultimate.exe')
#if AppVer == ""
#error GetFileVersion() failed maybe because file does not exist
#endif

[Setup]
AppName=Abnaki Example 3
AppVersion={#AppVer}
AppCopyright=Copyright (C) 2016- Abnaki Light Industry LLC
LicenseFile=..\..\..LICENSE
OutputBaseFilename=Abnaki-Example03-{#AppVer}-Setup
DefaultDirName={pf}\Abnaki\Example03
DefaultGroupName=Abnaki
UninstallDisplayIcon={app}\Ex03_Ultimate.exe
ArchitecturesInstallIn64BitMode=x64 ia64
DisableProgramGroupPage=yes
Compression=lzma2
SolidCompression=yes
; SetupIconFile=
OutputDir=SetupOutput
; SignTool=signtool ; can't prompt for passphrase

[Files]
Source: "bin\Release\*"; Excludes: "*.pdb,*vshost*"; DestDir: "{app}"; Flags: recursesubdirs
Source: "Other\OtherLicenses\*"; DestDir: "{app}\OtherLicenses"; Flags: recursesubdirs

; [Icons]

error: pathspec 'Examples/WPF/Ex03_Ultimate/ultimate.iss' did not match any file(s) known to git


Try .net core WD runtime installers again


QAQC_ReleaseUpdates_2

error: pathspec 'deploy/installer/Biomass' did not match any file(s) known to git
error: pathspec 'Harvest' did not match any file(s) known to git
error: pathspec '3.2.iss' did not match any file(s) known to git


Laying foundations for uninstall user-data

fatal: unable to access 'https://github.com/kidaa/windows-setup.git/': The requested URL returned error: 403


Windows installer with Inno Setup

Windows installer with Inno Setup

; This needs:
;   Default installation of Python 2.7 in C:\Python2.7
;   PyCrypto installed in Python installation

[Setup]
AppName=ReproUnzip
AppVerName=ReproUnzip 0.5
OutputBaseFilename=reprounzip-setup
DefaultGroupName=ReproZip
DefaultDirName={pf}\ReproUnzip
OutputDir=output

[Files]
; Base Python files
Source: C:\Python2.7\*; DestDir: {app}\python2.7; Flags: recursesubdirs

error: pathspec 'scripts/windows/reprounzip.iss' did not match any file(s) known to git


iss script for setup.exe compilation

iss script for setup.exe compilation

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{03E45E20-DD4C-4960-9028-BE74E588DF77}
AppName=Screenwerk
AppVersion=beta.1
;AppVerName=Screenwerk beta.1
DefaultDirName={pf}\Screenwerk
DisableDirPage=yes
DefaultGroupName=Screenwerk
DisableProgramGroupPage=yes
OutputDir=Y:\Screenwerk\bin
OutputBaseFilename=swsetup
Compression=lzma
SolidCompression=yes

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1

[Files]
Source: "Y:\Screenwerk\bin\ScreenWerk-2014\win32\ScreenWerk-2014.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "Y:\Screenwerk\bin\ScreenWerk-2014\win32\ffmpegsumo.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "Y:\Screenwerk\bin\ScreenWerk-2014\win32\icudt.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "Y:\Screenwerk\bin\ScreenWerk-2014\win32\libEGL.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "Y:\Screenwerk\bin\ScreenWerk-2014\win32\libGLESv2.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "Y:\Screenwerk\bin\ScreenWerk-2014\win32\nw.pak"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\Screenwerk"; Filename: "{app}\ScreenWerk-2014.exe"
Name: "{group}\{cm:UninstallProgram,Screenwerk}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\Screenwerk"; Filename: "{app}\ScreenWerk-2014.exe"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Screenwerk"; Filename: "{app}\ScreenWerk-2014.exe"; Tasks: quicklaunchicon

[Run]
Filename: "{app}\ScreenWerk-2014.exe"; Description: "{cm:LaunchProgram,Screenwerk}"; Flags: nowait postinstall skipifsilent

error: pathspec 'inno_setup_script.iss' did not match any file(s) known to git


changed the Windows installer version

changed the Windows installer version

error: pathspec 'HeeksCAD' did not match any file(s) known to git
error: pathspec 'installer.iss' did not match any file(s) known to git


updating the Windows installation files to add slovak language