mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-31 22:50:17 +02:00
* Add options to request
This commit is contained in:
parent
d8d7d49568
commit
a5811a35a9
@ -18,7 +18,7 @@ program convcgi;
|
||||
{ $DEFINE USEHTTPAPP}
|
||||
|
||||
uses
|
||||
sysutils, classes, cgutils,
|
||||
typinfo, sysutils, classes, cgutils, tstopas,
|
||||
{$IFDEF USEHTTPAPP} fphttpapp{$ELSE} fpcgi {$ENDIF},
|
||||
httpdefs, httproute;
|
||||
|
||||
@ -98,25 +98,54 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function GetRequestOptions(ARequest: TRequest) : TConversionOptions;
|
||||
|
||||
Var
|
||||
T : TConversionOption;
|
||||
S,N : String;
|
||||
|
||||
begin
|
||||
Result:=[];
|
||||
For T in TConversionOption do
|
||||
begin
|
||||
N:=GetEnumName(TypeInfo(TConversionOption),Ord(T));
|
||||
S:=aRequest.QueryFields.Values[N];
|
||||
if (S='1') or (S='true') then
|
||||
Include(Result,T);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure DoConvertFile(ARequest: TRequest; AResponse: TResponse);
|
||||
|
||||
Var
|
||||
S : TSettings;
|
||||
aPas : TStrings;
|
||||
aFileName : string;
|
||||
aPas,aLog : TStrings;
|
||||
aFileName,aUnitName,aOutput : string;
|
||||
Opts : TConversionOptions;
|
||||
|
||||
begin
|
||||
S:=GetSettings;
|
||||
aLog:=Nil;
|
||||
aPas:=TStringList.Create;
|
||||
try
|
||||
Opts:=GetRequestOptions(aRequest);
|
||||
aFileName:=aRequest.QueryFields.Values['file'];
|
||||
cgUtils.ConvertFile(S.BaseDir,aFileName,'',[],aPas,Nil);
|
||||
aResponse.Content:=aPas.text;
|
||||
aUnitName:=aRequest.QueryFields.Values['unit'];
|
||||
if aRequest.QueryFields.Values['prependlog']='1' then
|
||||
aLog:=TStringList.Create;
|
||||
cgUtils.ConvertFile(S.BaseDir,aFileName,aUnitName,Opts,aPas,aLog);
|
||||
if Assigned(aLog) then
|
||||
aOutput:='(* // Conversion log:'+sLineBreak+aLog.Text+sLineBreak+'*)'+sLineBreak
|
||||
else
|
||||
aOutput:='';
|
||||
aOutput:=aOutput+aPas.text;
|
||||
aResponse.Content:=aOutput;
|
||||
aResponse.ContentLength:=Length(aResponse.Content);
|
||||
aResponse.ContentType:='text/x-pascal';
|
||||
aResponse.SendResponse;
|
||||
Finally
|
||||
aPas.Free;
|
||||
aLog.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user