123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290letrun?interface?port?stop?debug?error_handler?secret?old_secrets?prefix?https?certificate_file?key_file?builtins?greeting?adjust_terminalhandler=let()=Dream.run?interface?port?stop?debug?error_handler?secret?old_secrets?prefix?https?certificate_file?key_file?builtins?greeting?adjust_terminalhandlerinOk0(* Command line interface *)openCmdlinerletdoc="Runs the Web application, by default at http://localhost:8080"letsdocs=Manpage.s_common_optionsletexits=Common.exitsletman=[`SManpage.s_description;`P"$(tname) runs the Web application, by default at http://localhost:8080."]letinfo=Term.info"dream"~doc~sdocs~exits~manletterm?interface?port?stop?debug?error_handler?secret?old_secrets?prefix?https?certificate_file?key_file?builtins?greeting?adjust_terminalhandler=letopenCommon.Syntaxinlet+_term=Common.termand+interface=matchinterfacewith|Someinterface->Term.const(Someinterface)|None->letdefault=Option.valueinterface~default:"localhost"inletdoc="the network interface to listen on. Defaults to \"localhost\". Use \
\"0.0.0.0\" to listen on all interfaces."inletdocv="INTERFACE"inletenv=Arg.env_var"DREAM_INTERFACE"inArg.(value&opt(somestring)(Somedefault)&info["i";"interface"]~doc~docv~env)and+port=matchportwith|Someport->Term.const(Someport)|None->letdefault=Option.valueport~default:8080inletdoc="the port to listen on. Defaults to 8080."inletdocv="PORT"inletenv=Arg.env_var"DREAM_PORT"inArg.(value&opt(someint)(Somedefault)&info["p";"port"]~doc~docv~env)and+debug=matchdebugwith|Somedebug->Term.constdebug|None->letdoc="enables debug information in error templates. See \
Dream.error_template. The default is false, to prevent accidental \
deployment with debug output turned on."inletenv=Arg.env_var"DREAM_DEBUG"inArg.(value&flag&info["d";"debug"]~doc~env)and+secret=matchsecretwith|Somesecret->Term.const(Somesecret)|None->letdoc="a key to be used for cryptographic operations, such as signing CSRF \
tokens. By default, a random secret is generated on each call to \
Dream.run. For production, generate a key with $(b,gen-key)\n\
and load it from file. A medium-sized Web app serving 1000 fresh \
encrypted cookies per second should rotate keys about once a year. \
See argument $(b,--old-secrets)) below for key rotation."inletdocv="SECRET"inletenv=Arg.env_var"DREAM_SECRET"inArg.(value&opt(somestring)None&info["s";"secret"]~doc~docv~env)and+old_secrets=matchold_secretswith|Someold_secrets->Term.const[old_secrets]|None->letdoc="a list of previous secrets that can still be used for decryption, but \
not for encryption. This is intended for key rotation."inletdocv="OLD_SECRETS"inletenv=Arg.env_var"DREAM_OLD_SECRETS"inArg.(value&opt_allstring[]&info["old-secret"]~doc~docv~env)and+prefix=matchprefixwith|Someprefix->Term.const(Someprefix)|None->letdefault=Option.valueprefix~default:"/"inletdoc="a site prefix for applications that are not running at the root (/) \
of their domain. The default is \"/\", for no prefix."inletdocv="PREFIX"inletenv=Arg.env_var"DREAM_PREFIX"inArg.(value&opt(somestring)(Somedefault)&info["prefix"]~doc~docv~env)and+https=matchhttpswith|Somehttps->Term.consthttps|None->letdoc="enables HTTPS. You should also specify $(b,--certificate-file) and \
$(b,--key-file). However, for development, Dream includes an insecure \
compiled-in localhost certificate. Enabling HTTPS also enables \
transparent upgrading of connections to HTTP/2."inletenv=Arg.env_var"DREAM_HTTPS"inArg.(value&flag&info["https"]~doc~env)and+certificate_file=matchcertificate_filewith|Somecertificate_file->Term.const(Somecertificate_file)|None->letdoc="specify the certificate file, when using $(b,--https). They are not \
required for development, but are required for production. Dream will \
write a warning to the log if you are using $(b,--https), don't \
provide $(b,--certificate-file) and $(b,--key-file), and \
$(b,--interface) is not \"localhost\"."inletdocv="CERTIFICATE_FILE"inletenv=Arg.env_var"DREAM_CERTIFICATE_FILE"inArg.(value&opt(somestring)None&info["certificate-file"]~doc~docv~env)and+key_file=matchkey_filewith|Somekey_file->Term.const(Somekey_file)|None->letdoc="specify the key file, when using $(b,--https). They are not required \
for development, but are required for production. Dream will write a \
warning to the log if you are using $(b,--https), don't provide \
$(b,--certificate-file) and $(b,--key-file), and $(b,--interface) is \
not \"localhost\"."inletdocv="KEY_FILE"inletenv=Arg.env_var"DREAM_KEY_FILE"inArg.(value&opt(somestring)None&info["key-file"]~doc~docv~env)and+no_builtins=matchbuiltinswith|Somebuiltins->Term.const(notbuiltins)|None->letdoc="disables Built-in middleware."inletenv=Arg.env_var"DREAM_NO_BUILTINS"inArg.(value&flag&info["no-builtins"]~doc~env)and+no_greeting=matchgreetingwith|Somegreeting->Term.const(notgreeting)|None->letdoc="disables the start-up log message that prints a link to the Web \
application."inletenv=Arg.env_var"DREAM_NO_GREETING"inArg.(value&flag&info["no-greeting"]~doc~env)and+no_adjust_terminal=matchadjust_terminalwith|Someadjust_terminal->Term.const(notadjust_terminal)|None->letdoc="disables adjusting the terminal to disable echo and line wrapping."inletenv=Arg.env_var"DREAM_NO_ADJUST_TERMINAL"inArg.(value&flag&info["no-adjust-terminal"]~doc~env)inletbuiltins=notno_builtinsinletgreeting=notno_greetinginletadjust_terminal=notno_adjust_terminalinrun?interface?port?stop~debug?error_handler?secret~old_secrets?prefix~https?certificate_file?key_file~builtins~greeting~adjust_terminalhandler|>Common.handle_errorsletcmd?interface?port?stop?debug?error_handler?secret?old_secrets?prefix?https?certificate_file?key_file?builtins?greeting?adjust_terminalhandler=(term?interface?port?stop?debug?error_handler?secret?old_secrets?prefix?https?certificate_file?key_file?builtins?greeting?adjust_terminalhandler,info)