Merge pull request 'Added --version
and robur cli-output' (#7) from 20220407_adding_viz_version_and_robur_cli-output into main
Reviewed-on: https://git.robur.io/robur/opam-graph/pulls/7
This commit is contained in:
commit
8644ee0119
3 changed files with 44 additions and 14 deletions
2
app/dune
2
app/dune
|
@ -1,4 +1,4 @@
|
|||
(executable
|
||||
(name main)
|
||||
(public_name opam_graph)
|
||||
(public_name opam-graph)
|
||||
(libraries cmdliner logs logs.fmt fmt.cli fmt.tty logs.cli opam-graph))
|
||||
|
|
48
app/main.ml
48
app/main.ml
|
@ -12,24 +12,39 @@ let read_file file =
|
|||
with _ -> invalid_arg ("Error opening file " ^ file)
|
||||
|
||||
let jump () transitive file output_format =
|
||||
let module G = Opam_graph in
|
||||
let switch = read_file file in
|
||||
let data = OpamFile.SwitchExport.read_from_string switch in
|
||||
match output_format with
|
||||
| `Text ->
|
||||
let graph = Opam_graph.dependencies ~transitive data in
|
||||
Format.printf "%a" Opam_graph.pp_graph graph
|
||||
let graph = G.dependencies ~transitive data in
|
||||
Format.printf "%a" G.pp_graph graph
|
||||
| `Dot ->
|
||||
let graph = Opam_graph.dependencies ~transitive data in
|
||||
let dot = Opam_graph.Render.Dot.of_graph graph in
|
||||
Format.printf "%a" Opam_graph.Render.Dot.pp dot
|
||||
let graph = G.dependencies ~transitive data in
|
||||
let dot = G.Render.Dot.of_graph graph in
|
||||
Format.printf "%a" G.Render.Dot.pp dot
|
||||
| `Dot_ui ->
|
||||
let graph = Opam_graph.Ui.dependencies ~transitive data in
|
||||
let dot = Opam_graph.Render.Dot.of_assoc graph in
|
||||
Format.printf "%a" Opam_graph.Render.Dot.pp dot
|
||||
let graph = G.Ui.dependencies ~transitive data in
|
||||
let dot = G.Render.Dot.of_assoc graph in
|
||||
Format.printf "%a" G.Render.Dot.pp dot
|
||||
| `Html ->
|
||||
let graph = Opam_graph.Ui.dependencies ~transitive data in
|
||||
let html = Opam_graph.Render.Html.of_assoc graph in
|
||||
Format.printf "%a" Opam_graph.Render.Html.pp html
|
||||
let graph = G.Ui.dependencies ~transitive data in
|
||||
let sharing_stats =
|
||||
data
|
||||
|> G.dependencies ~transitive:false
|
||||
|> G.calc_sharing_stats in
|
||||
let override_css = "\
|
||||
.deps-svg-wrap {\
|
||||
background: rgb(60, 60, 87); \
|
||||
}\
|
||||
"
|
||||
in
|
||||
let html =
|
||||
G.Render.Html.of_assoc
|
||||
~override_css
|
||||
~sharing_stats graph
|
||||
in
|
||||
Format.printf "%a" G.Render.Html.pp html
|
||||
|
||||
let setup_log style_renderer level =
|
||||
Fmt_tty.setup_std_outputs ?style_renderer ();
|
||||
|
@ -62,8 +77,15 @@ let file =
|
|||
Arg.(required & pos 0 (some file) None & info [ ] ~doc ~docv:"FILE")
|
||||
|
||||
let cmd =
|
||||
let term = Term.(const jump $ setup_log $ transitive $ file $ output_format) in
|
||||
let info = Cmd.info "opam_graph" ~version:"%%VERSION%%" in
|
||||
let term = Term.(
|
||||
const jump
|
||||
$ setup_log
|
||||
$ transitive
|
||||
$ file
|
||||
$ output_format
|
||||
) in
|
||||
let version = Fmt.str "%d" Opam_graph.visualization_version in
|
||||
let info = Cmd.info "opam-graph" ~version in
|
||||
Cmd.v info term
|
||||
|
||||
let () = Cmd.eval cmd |> exit
|
||||
|
|
|
@ -1,4 +1,12 @@
|
|||
|
||||
let visualization_version = 1
|
||||
(** Remember to increment this when anything changes that can affect the
|
||||
visualization, e.g.:
|
||||
* algorithm change
|
||||
* UI change
|
||||
* certain library-dependency changes
|
||||
*)
|
||||
|
||||
let sprintf = Printf.sprintf
|
||||
|
||||
module OSet = OpamPackage.Set
|
||||
|
|
Loading…
Reference in a new issue