From 6b4bd04c6a79688cfe8b6dddf7097540dadd5cdf Mon Sep 17 00:00:00 2001 From: swrup Date: Tue, 17 Feb 2026 06:38:50 +0100 Subject: [PATCH] clean up --- tools/dune | 6 +-- ...es_registry.ml => gen_taler_signatures.ml} | 48 ++++++++++--------- 2 files changed, 28 insertions(+), 26 deletions(-) rename tools/{gen_signatures_registry.ml => gen_taler_signatures.ml} (80%) diff --git a/tools/dune b/tools/dune index 4f5057ca..80d17dd6 100644 --- a/tools/dune +++ b/tools/dune @@ -5,7 +5,7 @@ (libraries cmdliner bos fmt mirage-crypto ptime mte vif)) (executable - (public_name gen_signatures_registry) - (name gen_signatures_registry) - (modules gen_signatures_registry) + (public_name gen_taler_signatures) + (name gen_taler_signatures) + (modules gen_taler_signatures) (libraries angstrom bos fmt)) diff --git a/tools/gen_signatures_registry.ml b/tools/gen_taler_signatures.ml similarity index 80% rename from tools/gen_signatures_registry.ml rename to tools/gen_taler_signatures.ml index dc6a8ede..38bc7e80 100644 --- a/tools/gen_signatures_registry.ml +++ b/tools/gen_taler_signatures.ml @@ -51,12 +51,7 @@ module Recfile = struct let parse s = parse_string ~consume:All recfile s end -let url = - "https://git-www.gnunet.org/gana.git/plain/gnunet-signatures/registry.rec" - -let registry_file = "registry.rec" - -let download () = +let download ~output ~url = let open Bos in let res = OS.Cmd.run @@ -65,7 +60,7 @@ let download () = % "--silent" % "--show-error" % "-o" - % registry_file + % output % "-X" % "GET" % url) @@ -74,8 +69,6 @@ let download () = | Error (`Msg s) -> Fmt.failwith "download failure: %s" s | Ok () -> () -let read_file file = In_channel.with_open_bin file In_channel.input_all - type purpose = { number: int32; name: string; @@ -100,19 +93,28 @@ let parse_purposes records = | _ -> None) |> List.filter (fun v -> v.number >= 1000_l) -let () = - download (); - let content = read_file registry_file in +let print_module purposes = + let header = + {|(* This file was generated from the GANA database: + https://git-www.gnunet.org/gana.git/tree/gnunet-signatures/registry.rec *)|} + in + let pp ppf { number; name; comment } = + Fmt.pf ppf "(** %s *)\nlet %s : int32 = %ld_l\n\n" comment name number + in + Fmt.pr "%s\n\n%a@." header (Fmt.list ~sep:Fmt.nop pp) purposes; + () + +(* --- *) + +let url = + "https://git-www.gnunet.org/gana.git/plain/gnunet-signatures/registry.rec" + +let main () = + let tmp_file = Bos.OS.File.tmp "registry.rec.%s" |> Result.get_ok in + download ~output:(Fpath.to_string tmp_file) ~url; + let content = Bos.OS.File.read tmp_file |> Result.get_ok in match Recfile.parse content with | Error msg -> Fmt.failwith "Recfile parse error: %s" msg - | Ok records -> - let purposes = parse_purposes records in - let header = - {|(* This file was generated from the GANA database: - https://git-www.gnunet.org/gana.git/tree/gnunet-signatures/registry.rec *)|} - in - let pp ppf { number; name; comment } = - Fmt.pf ppf "(** %s *)\nlet %s : int32 = %ld_l\n\n" comment name number - in - Fmt.pr "%s\n\n%a@." header (Fmt.list ~sep:Fmt.nop pp) purposes; - () + | Ok records -> print_module (parse_purposes records) + +let () = main ()