diff --git a/Readme.txt b/Readme.md
similarity index 83%
rename from Readme.txt
rename to Readme.md
index ba3b166..845294f 100644
--- a/Readme.txt
+++ b/Readme.md
@@ -1,6 +1,4 @@
-Silverpoint MultiInstaller
-==========================
-
+# Silverpoint MultiInstaller
Silverpoint MultiInstaller is a multi component package installer for Embarcadero Delphi and C++Builder.
It was created to ease the components installation on the IDE.
@@ -10,12 +8,11 @@ Just download the zips and select the destination folder, all the components wil
It can also install multiple packages directly from GIT repositories.
-For more info go to:
-http://www.silverpointdevelopment.com
+For more info go to:
+www.silverpointdevelopment.com
-License
--------
+## License
The contents of this package are licensed under a disjunctive tri-license giving you the choice of one of the three following sets of free software/open source licensing terms:
@@ -31,15 +28,13 @@ Software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, eithe
The initial developer of this package is Robert Lee.
-Installation
-------------
+## Installation
Requirements:
- RAD Studio XE or newer
-Getting Started
----------------
+## Getting Started
To install a component pack with MultiInstaller you have to follow these steps:
1) Read the licenses of the component packs you want to install.
@@ -55,12 +50,14 @@ For example, if you want to install TB2K + SpTBXLib:
The installation folder will end up with this files:
-C:\MyInstall
- |- SpTBXLib.zip
- |- tb2k-2.2.2.zip
- |- TB2Kpatch-1.1.zip
- |- MultiInstaller.exe
- |- Setup.ini
+```
+C:\MyInstall
+ |- SpTBXLib.zip
+ |- tb2k-2.2.2.zip
+ |- TB2Kpatch-1.1.zip
+ |- MultiInstaller.exe
+ |- Setup.ini
+```
You are ready to install the component packages, just run the MultiInstaller, select the destination folder, and all the components will be unziped, patched, compiled and installed on the Delphi IDE.
diff --git a/Source/MultiInstaller.dproj b/Source/MultiInstaller.dproj
index 6ca86fe..5812800 100644
--- a/Source/MultiInstaller.dproj
+++ b/Source/MultiInstaller.dproj
@@ -2,9 +2,9 @@
{EBF09947-4C9C-4019-AB2C-5AC10A4CEF07}
MultiInstaller.dpr
- Release
+ Debug
DCC32
- 19.0
+ 19.5
True
Application
VCL
@@ -19,6 +19,11 @@
Base
true
+
+ true
+ Base
+ true
+
true
Base
@@ -30,6 +35,12 @@
true
true
+
+ true
+ Cfg_1
+ true
+ true
+
true
Base
@@ -41,6 +52,12 @@
true
true
+
+ true
+ Cfg_2
+ true
+ true
+
MultiInstaller
Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;$(DCC_Namespace)
@@ -49,6 +66,9 @@
MultiInstaller.exe
00400000
x86
+ $(BDS)\bin\delphi_PROJECTICON.ico
+ $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png
+ $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png
true
@@ -62,6 +82,14 @@
..\Bin
PerMonitor
+
+ System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)
+ Debug
+ true
+ CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=
+ 1033
+ $(BDS)\bin\default_app.manifest
+
false
RELEASE;$(DCC_Define)
@@ -74,15 +102,25 @@
1033
true
+
+ true
+ PerMonitorV2
+
DEBUG;$(DCC_Define)
1033
true
- true
Debug
- PerMonitor
+ true
+ true
+ true
+ MultiInstaller_Icon.ico
+
+
+ true
+ PerMonitorV2
@@ -91,10 +129,6 @@
-
- Cfg_2
- Base
-
Base
@@ -102,6 +136,10 @@
Cfg_1
Base
+
+ Cfg_2
+ Base
+
@@ -141,14 +179,13 @@
- Embarcadero C++Builder Office 2000 Servers Package
- Embarcadero C++Builder Office XP Servers Package
- Microsoft Office 2000 Sample Automation Server Wrapper Components
- Microsoft Office XP Sample Automation Server Wrapper Components
+ Microsoft Office 2000 Sample Automation Server Wrapper Components
+ Microsoft Office XP Sample Automation Server Wrapper Components
True
+ False
False
diff --git a/Source/SpComponentInstaller.pas b/Source/SpComponentInstaller.pas
index b6f381f..232a288 100644
--- a/Source/SpComponentInstaller.pas
+++ b/Source/SpComponentInstaller.pas
@@ -63,7 +63,8 @@ interface
SLogNotAGit = 'Error: %s is not a Git repository.';
SLogNotInstallable = '%s is not installable. Proceeding without unzipping/cloning';
SLogCorruptedZip = 'Error: %s is corrupted.';
- SLogGitCloneFailed = 'Error: in git clone %s';
+ SLogGitCloneFailed = 'Error: in Git clone %s';
+ SLogGitNotInstalled = 'Error: Git not installed';
SLogErrorCopying = 'Error copying %s to %s';
SLogErrorDeleting = 'Error deleting %s';
@@ -79,6 +80,7 @@ interface
SLogFinished = 'All the component packages have been successfully installed.' + #13#10 + 'Elapsed time: %f secs.';
SGitCloneCommand = 'GIT.EXE clone --verbose --progress %s %s';
+ SGitIsInstalledCommand = 'GIT.EXE --version';
type
TSpIDEType = ( // [IDE-Change-Update]
@@ -270,6 +272,7 @@ function SpExtractZip(ZipFilename, DestinationPath: string): Boolean;
{ Git }
function SpGitClone(AGit, DestinationPath: string; Log: TStrings): Boolean;
+function SpIsGitInstalled(Log: TStrings): Boolean;
{ Ini and Registry }
function SpReadRegValue(Key, Name: string; out Value: string): Boolean;
@@ -537,6 +540,15 @@ function SpGitClone(AGit, DestinationPath: string; Log: TStrings): Boolean;
Log.Text := Log.Text + DosOutput + #13#10;
end;
+function SpIsGitInstalled(Log: TStrings): Boolean;
+var
+ DosOutput: string;
+begin
+ Result := SpExecuteDosCommand(SGitIsInstalledCommand, '', DosOutput) = 0;
+ if Assigned(Log) then
+ Log.Text := Log.Text + DosOutput + #13#10;
+end;
+
//WMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWMWM
{ Ini and Registry }
@@ -1357,9 +1369,11 @@ procedure TSpComponentPackageList.LoadFromIni(Filename: string);
function TSpComponentPackageList.ExtractAllZips(Source, Destination: string;
Log: TStrings): Boolean;
var
+ GitChecked: Boolean;
I: integer;
Item: TSpComponentPackage;
begin
+ GitChecked := False;
Result := False;
SpWriteLog(Log, SLogStartUnzip, '');
@@ -1404,6 +1418,13 @@ function TSpComponentPackageList.ExtractAllZips(Source, Destination: string;
end
else
if Item.Git <> '' then begin
+ if not GitChecked then begin
+ GitChecked := True;
+ if not SpIsGitInstalled(Log) then begin
+ SpWriteLog(Log, SLogGitCloneFailed, '');
+ Exit;
+ end;
+ end;
SpWriteLog(Log, SLogGitCloning, Item.Git, Item.Destination);
if not SpGitClone(Item.Git, Item.Destination, Log) then begin
SpWriteLog(Log, SLogGitCloneFailed, Item.Git);
diff --git a/Source/unit1.dfm b/Source/unit1.dfm
index d165c43..5d4c753 100644
--- a/Source/unit1.dfm
+++ b/Source/unit1.dfm
@@ -15,7 +15,6 @@ object Form1: TForm1
OnCreate = FormCreate
OnDestroy = FormDestroy
OnShow = FormShow
- PixelsPerInch = 96
TextHeight = 13
object PageControl1: TPageControl
Left = 0
@@ -26,6 +25,8 @@ object Form1: TForm1
Align = alClient
Style = tsFlatButtons
TabOrder = 0
+ ExplicitWidth = 491
+ ExplicitHeight = 264
object TabSheet1: TTabSheet
Caption = 'TabSheet1'
TabVisible = False
@@ -148,6 +149,8 @@ object Form1: TForm1
ParentBackground = False
ParentColor = True
TabOrder = 1
+ ExplicitTop = 324
+ ExplicitWidth = 491
DesignSize = (
495
53)
@@ -183,13 +186,14 @@ object Form1: TForm1
TabOrder = 3
end
object ButtonNext: TButton
- Left = 315
+ Left = 311
Top = 18
Width = 75
Height = 25
Action = aNext
Anchors = [akRight, akBottom]
TabOrder = 0
+ ExplicitLeft = 307
end
object ButtonBack: TButton
Left = 235
@@ -219,6 +223,7 @@ object Form1: TForm1
Color = clWhite
ParentBackground = False
TabOrder = 2
+ ExplicitWidth = 491
object LabelTitle: TLabel
Left = 8
Top = 15
diff --git a/Source/unit1.pas b/Source/unit1.pas
index e13d6bf..4d00810 100644
--- a/Source/unit1.pas
+++ b/Source/unit1.pas
@@ -14,7 +14,7 @@ interface
IniFiles, Actions, SpComponentInstaller;
const
- rvMultiInstallerVersion = 'Silverpoint MultiInstaller 3.5.8';
+ rvMultiInstallerVersion = 'Silverpoint MultiInstaller 3.5.9';
rvMultiInstallerLink = 'http://www.silverpointdevelopment.com';
resourcestring
@@ -27,10 +27,6 @@ interface
SErrorLabel = 'There were errors found in the setup, check the log.';
SErrorInvalidBasePath = 'The directory doesn''t exist.';
- SErrorDetectingBDSPROJECTSDIR = 'Silverpoint MultiInstaller couldn''t detect the $(BDSPROJECTSDIR) directory.' + #13#10 +
- 'You are probably using the Japanese version of Delphi 2009.' + #13#10 +
- 'Please, send a bug report to the author: ' + rvMultiInstallerLink;
-
type
TForm1 = class(TForm)
PageControl1: TPageControl;