pas2js/demo/rtl/demonodecmdlineoptions.pas
2020-02-21 15:14:03 +00:00

55 lines
1.0 KiB
ObjectPascal

program demonodecmdlineoptions;
{$mode objfpc}
uses
nodejsapp, JS, Classes, SysUtils, nodeJS;
type
{ TMyApplication }
TMyApplication = class(TNodeJSApplication)
procedure doRun; override;
private
procedure Usage(Msg: string);
end;
procedure TMyApplication.Usage(Msg : string);
begin
if Msg<>'' then
Writeln('Error :',Msg);
Writeln('Usage:');
Writeln(ExeName,' [options]');
Writeln('Where options is one or more of');
Writeln('-h --help this help message');
Writeln('-e --echo echo option');
ExitCode:=Ord(Msg<>'');
end;
procedure TMyApplication.doRun;
Var
S : String;
begin
S:=CheckOptions('he:',['help','echo']);
if (S<>'') or HasOption('h','help') then
Usage(S);
if HasOption('e','echo') then
Writeln(GetoptionValue('e','echo'));
for S in GetNonOptions('he:',['help','echo']) do
Writeln(s);
Terminate;
end;
var
Application : TMyApplication;
begin
Application:=TMyApplication.Create(nil);
Application.Initialize;
Application.Run;
Application.Free;
end.