aboutsummaryrefslogtreecommitdiff
path: root/bin/css_merge.ml
diff options
context:
space:
mode:
Diffstat (limited to 'bin/css_merge.ml')
-rwxr-xr-xbin/css_merge.ml34
1 files changed, 34 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)
+ )