On Wednesday, 31 July 2019 at 17:04:58 UTC, BoQsc wrote:
However I tried to add options (--single) to the dub shebang and apache now throwing: "bad header error"

Without "--single" option seems to work.


#!/usr/bin/env -vS dub --single
/+ dub.sdl:
   name "application"
   dependency "arsd-official:dom" version="4.0.2"
+/
import std.stdio;
import arsd.dom;
void main()
{
   writeln(`Content-type: text/html`);
   writeln(``);
   writeln(`test`);

}



split -S:  'dub --single'
into:    'dub'
    &    '--single'
executing: dub
  arg[0]= 'dub'
  arg[1]= '--single'
  arg[2]= '/usr/lib/cgi-bin/example.d'
[Wed Jul 31 19:57:56.892522 2019] [cgid:error] [pid 833:tid 140583783876352] [client >127.0.0.1:43598] malformed header from script 'example.d': Bad header: Performing "debug" >build using

As already pointed out, as starting point you could compile the application e.g. within folder /tmp and then copy the executable to cgi-bin folder.
Please make sure it has executable flag.

dub build --single hello.d

The application could look like this:
#!/usr/bin/env dub

/+ dub.sdl:
    name "application"
    dependency "arsd-official:cgi" version="4.0.2"
    subConfiguration "arsd-official:cgi" "cgi"
+/
import arsd.cgi;

void hello(Cgi cgi) { cgi.setResponseContentType("text/plain");

    if("name" in cgi.get)
        cgi.write("Hello, " ~ cgi.get["name"]);
    else
        cgi.write("Hello, world!");
 }

mixin GenericMain!hello;

Kind regards
Andre

Reply via email to