basic static files w/ crunch
This commit is contained in:
parent
abec80c2e1
commit
b96c671e01
5 changed files with 37 additions and 8 deletions
6
src/config.ml
Normal file
6
src/config.ml
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
(* https://docs.taler.net/manpages/taler-exchange.conf.5.html *)
|
||||||
|
|
||||||
|
let terms_dir = Fpath.(v "terms")
|
||||||
|
let terms_etag = "0"
|
||||||
|
let privacy_dir = Fpath.(v "privacy")
|
||||||
|
let privacy_etag = "0"
|
||||||
10
src/dune
10
src/dune
|
|
@ -1,4 +1,14 @@
|
||||||
(executable
|
(executable
|
||||||
(public_name mte)
|
(public_name mte)
|
||||||
(name mte)
|
(name mte)
|
||||||
|
(modules assets mte config)
|
||||||
(libraries vif fmt jsont))
|
(libraries vif fmt jsont))
|
||||||
|
|
||||||
|
(rule
|
||||||
|
(target assets.ml)
|
||||||
|
(deps
|
||||||
|
(source_tree assets))
|
||||||
|
(action
|
||||||
|
(with-stdout-to
|
||||||
|
%{null}
|
||||||
|
(run ocaml-crunch -m plain assets -o %{target}))))
|
||||||
|
|
|
||||||
29
src/mte.ml
29
src/mte.ml
|
|
@ -1,18 +1,31 @@
|
||||||
let terms req _server _env =
|
module Assets = struct
|
||||||
Vif.Response.with_file ~compression:`DEFLATE req
|
let get path =
|
||||||
Fpath.(v "assets" / "terms.html")
|
let path = Fpath.to_string path in
|
||||||
|
match Assets.read path with
|
||||||
|
| None -> Fmt.failwith "asset loading failure `%s`" path
|
||||||
|
| Some data -> data
|
||||||
|
|
||||||
let privacy req _server _env =
|
let terms =
|
||||||
Vif.Response.with_file ~compression:`DEFLATE req
|
get Fpath.((Config.terms_dir / "en" / Config.terms_etag) + ".html")
|
||||||
Fpath.(v "assets" / "privacy.html")
|
|
||||||
|
let privacy =
|
||||||
|
get Fpath.((Config.privacy_dir / "en" / Config.privacy_etag) + ".html")
|
||||||
|
end
|
||||||
|
|
||||||
|
let static data req _server _env =
|
||||||
|
let open Vif.Response.Syntax in
|
||||||
|
let* () = Vif.Response.with_string ~compression:`Gzip req data in
|
||||||
|
let field = "content-type" in
|
||||||
|
let* () = Vif.Response.add ~field "html; charset=utf-8" in
|
||||||
|
Vif.Response.respond `OK
|
||||||
|
|
||||||
let routes =
|
let routes =
|
||||||
let open Vif.Uri in
|
let open Vif.Uri in
|
||||||
let open Vif.Route in
|
let open Vif.Route in
|
||||||
(*let open Vif.Type in*)
|
(*let open Vif.Type in*)
|
||||||
[
|
[
|
||||||
get (rel / "terms" /?? nil) --> terms
|
get (rel / "terms" /?? nil) --> static Assets.terms
|
||||||
; get (rel / "privacy" /?? nil) --> privacy
|
; get (rel / "privacy" /?? nil) --> static Assets.privacy
|
||||||
]
|
]
|
||||||
|
|
||||||
let () =
|
let () =
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue