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 @@
Form1
- - 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;