blob: 3390ac7e260ad2eb7c66b4563742e061e25fdb0e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
open Core
open Compiler_rewrite.Compiler
let invoke ?(stdin = "") ?(env = [||]) cmd =
let ic, oc, ec = UnixLabels.open_process_full cmd ~env in
Out_channel.output_string oc stdin;
Out_channel.close oc;
(In_channel.input_all ic, In_channel.input_all ec)
let () =
let file_name = Array.get (Sys.get_argv ()) 1 in
let policy_code = In_channel.read_all file_name in
let stdout, _ =
invoke "/home/jakob/.local/bin/opa parse -f json /dev/stdin"
~stdin:policy_code ~env:[||]
in
let ast = Yojson.Basic.from_string stdout |> parse_tree in
match ast with
| { policy = [ { body; _ } ]; _ } ->
extract_local_variables_wrapper body |> List.iter ~f:print_endline
| _ -> print_endline "failed"
|
© 2015 - 2026 Jakob L. Kreuze