mirror of https://gitlab.com/basile.b/dexed.git
close #206, use CURL ti check for updates until SSL 1.1 supported
This commit is contained in:
parent
993a31575e
commit
6a20a54f06
|
@ -618,7 +618,7 @@ implementation
|
||||||
{$R *.lfm}
|
{$R *.lfm}
|
||||||
|
|
||||||
uses
|
uses
|
||||||
SynMacroRecorder, ce_dcd;
|
SynMacroRecorder, ce_dcd, openssl, dynlibs;
|
||||||
|
|
||||||
{$REGION TCERunnableOptions ----------------------------------------------------}
|
{$REGION TCERunnableOptions ----------------------------------------------------}
|
||||||
constructor TCERunnableOptions.create(aOwner: TComponent);
|
constructor TCERunnableOptions.create(aOwner: TComponent);
|
||||||
|
@ -1755,31 +1755,62 @@ begin
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function checkForUpdate: string;
|
function checkForUpdate: string;
|
||||||
|
const
|
||||||
|
updURL = 'https://api.github.com/repos/BBasile/Coedit/releases/latest';
|
||||||
var
|
var
|
||||||
prs: TJSONParser = nil;
|
prs: TJSONParser = nil;
|
||||||
dat: TJSONData = nil;
|
dat: TJSONData = nil;
|
||||||
tgg: TJSONData = nil;
|
tgg: TJSONData = nil;
|
||||||
url: TJSONData = nil;
|
url: TJSONData = nil;
|
||||||
str: string;
|
str: string = '';
|
||||||
cli: TFPHTTPClient;
|
cli: TFPHTTPClient = nil;
|
||||||
lst: TStringList = nil;
|
lst: TStringList = nil;
|
||||||
res: TResourceStream = nil;
|
res: TResourceStream = nil;
|
||||||
svo: TSemVer;
|
svo: TSemVer;
|
||||||
sva: TSemVer;
|
sva: TSemVer;
|
||||||
begin
|
begin
|
||||||
result := '';
|
result := '';
|
||||||
|
|
||||||
|
if openssl.IsSSLloaded then
|
||||||
|
begin
|
||||||
|
try
|
||||||
cli := TFPHTTPClient.Create(nil);
|
cli := TFPHTTPClient.Create(nil);
|
||||||
try
|
try
|
||||||
try
|
cli.AllowRedirect:=true;
|
||||||
cli.AddHeader('User-Agent','Mozilla/5.0 (compatible; fpweb)');
|
cli.AddHeader('User-Agent','Mozilla/5.0 (compatible; fpweb)');
|
||||||
str := cli.Get('https://api.github.com/repos/BBasile/Coedit/releases/latest');
|
str := cli.Get(updURL);
|
||||||
|
finally
|
||||||
|
cli.free;
|
||||||
|
end;
|
||||||
|
except
|
||||||
|
dlgOkError('The latest release cannot be determined (HTTP client)');
|
||||||
|
end;
|
||||||
|
end
|
||||||
|
|
||||||
|
else if not openssl.IsSSLloaded and exeFullName('curl').isNotEmpty then
|
||||||
|
begin
|
||||||
|
if not process.RunCommand('curl', [updURL], str) then
|
||||||
|
begin
|
||||||
|
dlgOkError('The latest release cannot be determined (CURL)');
|
||||||
|
exit;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
dlgOkInfo('No suitable tool can be used to determine the latest version.' +
|
||||||
|
'Install at least CURL as a command line tool, visible in the PATH.' +
|
||||||
|
'Newest OpenSSL versions (>= 1.1) are currently not supported');
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
|
||||||
prs := TJSONParser.Create(str, [joUTF8, joIgnoreTrailingComma]);
|
prs := TJSONParser.Create(str, [joUTF8, joIgnoreTrailingComma]);
|
||||||
|
try
|
||||||
dat := prs.Parse;
|
dat := prs.Parse;
|
||||||
if dat.isNotNil then
|
if dat.isNotNil then
|
||||||
begin
|
begin
|
||||||
url := dat.FindPath('html_url');
|
url := dat.FindPath('html_url');
|
||||||
tgg := dat.FindPath('tag_name');
|
tgg := dat.FindPath('tag_name');
|
||||||
if url.isNotNil and tgg.isNotNil then
|
if url.isNotNil and tgg.isNotNil and (tgg.AsString <> '3_update_5') then
|
||||||
begin
|
begin
|
||||||
res:= TResourceStream.Create(HINSTANCE, 'VERSION', RT_RCDATA);
|
res:= TResourceStream.Create(HINSTANCE, 'VERSION', RT_RCDATA);
|
||||||
lst := TstringList.Create;
|
lst := TstringList.Create;
|
||||||
|
@ -1792,16 +1823,13 @@ begin
|
||||||
result := url.AsString;
|
result := url.AsString;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
except
|
|
||||||
dlgOkError('The latest release cannot be determined');
|
|
||||||
end;
|
|
||||||
finally
|
finally
|
||||||
cli.free;
|
prs.Free;
|
||||||
prs.free;
|
|
||||||
dat.free;
|
dat.free;
|
||||||
lst.free;
|
lst.free;
|
||||||
res.free;
|
res.free;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEMainForm.DoFirstShow;
|
procedure TCEMainForm.DoFirstShow;
|
||||||
|
|
Loading…
Reference in New Issue