You've already forked lazarus-ccr
svn classes: added property version of the installed svn executable.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1831 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -41,12 +41,34 @@ uses
|
||||
function ExecuteSvnCommand(const Command: string; Output: TStream): integer;
|
||||
function ExecuteSvnCommand(const Command: string): integer;
|
||||
procedure DumpStream(const AStream: TStream);
|
||||
function GetSvnVersionNumber: string;
|
||||
|
||||
property SvnVersion: string read GetSvnVersionNumber;
|
||||
|
||||
var
|
||||
SvnExecutable: string;
|
||||
|
||||
implementation
|
||||
|
||||
var
|
||||
SvnVersionNumber: string;
|
||||
|
||||
procedure InitializeSvnVersionNumber;
|
||||
var
|
||||
OutputStream: TStream;
|
||||
FirstDot, SecondDot: integer;
|
||||
begin
|
||||
OutputStream := TMemoryStream.Create;
|
||||
try
|
||||
ExecuteSvnCommand('--version --quiet', OutputStream);
|
||||
SetLength(SvnVersionNumber, OutputStream.Size);
|
||||
OutputStream.Seek(0,soBeginning);
|
||||
OutputStream.Read(SvnVersionNumber[1],Length(SvnVersionNumber));
|
||||
finally
|
||||
OutputStream.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure InitializeSvnExecutable;
|
||||
begin
|
||||
if FileExists(SvnExecutable) then exit;
|
||||
@ -133,6 +155,13 @@ begin
|
||||
lines.Free;
|
||||
end;
|
||||
|
||||
function GetSvnVersionNumber: string;
|
||||
begin
|
||||
if SvnVersionNumber='' then
|
||||
InitializeSvnVersionNumber;
|
||||
Result := SvnVersionNumber;
|
||||
end;
|
||||
|
||||
|
||||
end.
|
||||
|
||||
|
Reference in New Issue
Block a user