diff options
author | Sébastien Dailly <sebastien@chimrod.com> | 2021-02-02 14:01:39 +0100 |
---|---|---|
committer | Sébastien Dailly <sebastien@chimrod.com> | 2021-02-02 21:26:33 +0100 |
commit | b09a05d9e38e0734f66377716b00268b50da7de8 (patch) | |
tree | 75c5161f755e15349998af4adfe39bce46406c58 /bin |
Initial commit
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/css_merge.ml | 34 | ||||
-rwxr-xr-x | bin/dune | 18 |
2 files changed, 52 insertions, 0 deletions
diff --git a/bin/css_merge.ml b/bin/css_merge.ml new file mode 100755 index 0000000..7e0ee6b --- /dev/null +++ b/bin/css_merge.ml @@ -0,0 +1,34 @@ +open StdLabels + +module Args = struct + type t = + { out: string [@short "-o"] + } [@@deriving argparse{ + positional = + [ "css", "The css file" + ] + }] + + let default = + { out = "" + } +end + +let () = + + let arg, rest = Args.argparse Args.default "css_merge" Sys.argv in + let css = Array.fold_left rest + ~init:Css_lib.Merge.empty + ~f:(fun map arg -> + let content = Stdio.In_channel.read_all arg in + let css = Css.Parser.parse_stylesheet content in + Css_lib.Merge.add_css map css + ) in + + Stdio.Out_channel.with_file arg.Args.out ~f:(fun channel -> + let format = Format.formatter_of_out_channel channel in + Css_lib.Print.css + Css_lib.Print.minify_printer + format + (Css_lib.Merge.extract_css css) + ) diff --git a/bin/dune b/bin/dune new file mode 100755 index 0000000..611ab5d --- /dev/null +++ b/bin/dune @@ -0,0 +1,18 @@ +(env + (dev + (flags (:standard -warn-error -A)) + ) + (release + (ocamlopt_flags (-O3))) +) + +(executable + (public_name css_merge) + (package css_merge) + (libraries + stdio + css_lib + ) + (preprocess (pps lwt_ppx ppx_deriving_argparse)) +) + |