Files
Geneweb/bin/gwd/gwdPluginMETA.ml
2024-03-05 22:01:20 +01:00

31 lines
943 B
OCaml

type meta = {
version : string;
maintainers : string list;
depends : string list;
}
let parse fname =
let ic = open_in fname in
let rec loop meta =
match input_line ic with
| exception End_of_file ->
close_in ic;
meta
| s -> (
match String.index_opt s ':' with
| None -> loop meta
| Some i -> (
let v =
String.trim @@ String.sub s (i + 1) (String.length s - i - 1)
in
let split_and_trim v =
List.map String.trim @@ String.split_on_char ',' v
in
match String.trim @@ String.sub s 0 i with
| "depends" -> loop { meta with depends = split_and_trim v }
| "maintainers" -> loop { meta with maintainers = split_and_trim v }
| "version" -> loop { meta with version = v }
| _ -> loop meta))
in
loop { version = ""; maintainers = []; depends = [] }