From ee65da44297bf83ea6d0630d4bf0ca605a94cba4 Mon Sep 17 00:00:00 2001 From: Mattias Gaertner Date: Sat, 24 Nov 2018 16:16:44 +0000 Subject: [PATCH] fcl-web: simpleserver: added option -m for mimetypes and default filename for darwin git-svn-id: trunk@40366 - --- .../examples/simpleserver/simpleserver.lpi | 1 + .../examples/simpleserver/simpleserver.pas | 21 ++++++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/packages/fcl-web/examples/simpleserver/simpleserver.lpi b/packages/fcl-web/examples/simpleserver/simpleserver.lpi index 55b3e81470..46a8628d1b 100644 --- a/packages/fcl-web/examples/simpleserver/simpleserver.lpi +++ b/packages/fcl-web/examples/simpleserver/simpleserver.lpi @@ -39,6 +39,7 @@ + diff --git a/packages/fcl-web/examples/simpleserver/simpleserver.pas b/packages/fcl-web/examples/simpleserver/simpleserver.pas index e4c8dbf2f7..b6d9700b56 100644 --- a/packages/fcl-web/examples/simpleserver/simpleserver.pas +++ b/packages/fcl-web/examples/simpleserver/simpleserver.pas @@ -46,6 +46,7 @@ begin Writeln('-i --indexpage=name Directory index page to use (default: index.html)'); Writeln('-n --noindexpage Do not allow index page.'); Writeln('-p --port=NNNN TCP/IP port to listen on (default is 3000)'); + Writeln('-m --mimetypes=file path of mime.types, default under unix: /etc/mime.types'); Writeln('-q --quiet Do not write diagnostic messages'); Halt(Ord(Msg<>'')); end; @@ -65,10 +66,24 @@ begin if D='' then D:=GetCurrentDir; Log(etInfo,'Listening on port %d, serving files from directory: %s',[Port,D]); + + if HasOption('m','mimetypes') then + MimeTypesFile:=GetOptionValue('m','mimetypes'); {$ifdef unix} - MimeTypesFile:='/etc/mime.types'; - if not FileExists(MimeTypesFile) then - MimeTypesFile:=''; + if MimeTypesFile='' then + begin + MimeTypesFile:='/etc/mime.types'; + if not FileExists(MimeTypesFile) then + begin + {$ifdef darwin} + MimeTypesFile:='/private/etc/apache2/mime.types'; + if not FileExists(MimeTypesFile) then + {$endif} + MimeTypesFile:=''; + end; + end; + if (MimeTypesFile<>'') and not FileExists(MimeTypesFile) then + Log(etWarning,'mimetypes file not found: '+MimeTypesFile); {$endif} TSimpleFileModule.BaseDir:=IncludeTrailingPathDelimiter(D); TSimpleFileModule.OnLog:=@Log;