diff options
Diffstat (limited to 'bin/css_merge.ml')
-rwxr-xr-x | bin/css_merge.ml | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/bin/css_merge.ml b/bin/css_merge.ml index 7e0ee6b..42e6f6f 100755 --- a/bin/css_merge.ml +++ b/bin/css_merge.ml @@ -2,12 +2,8 @@ open StdLabels module Args = struct type t = - { out: string [@short "-o"] - } [@@deriving argparse{ - positional = - [ "css", "The css file" - ] - }] + { out: string + } let default = { out = "" @@ -16,8 +12,14 @@ end let () = - let arg, rest = Args.argparse Args.default "css_merge" Sys.argv in - let css = Array.fold_left rest + let out = ref "" + and rest = ref [] in + let speclist = + [ ("--out", Arg.Set_string out, "Output file") + ; ("-o", Arg.Set_string out, "Output file") ] in + Arg.parse speclist (fun arg -> rest := arg::(!rest)) "css_merge"; + let rest = List.rev (!rest) in + let css = List.fold_left rest ~init:Css_lib.Merge.empty ~f:(fun map arg -> let content = Stdio.In_channel.read_all arg in @@ -25,7 +27,7 @@ let () = Css_lib.Merge.add_css map css ) in - Stdio.Out_channel.with_file arg.Args.out ~f:(fun channel -> + Stdio.Out_channel.with_file !out ~f:(fun channel -> let format = Format.formatter_of_out_channel channel in Css_lib.Print.css Css_lib.Print.minify_printer |