summaryrefslogtreecommitdiff
path: root/src/commit.ml
diff options
context:
space:
mode:
authorJohn Estabrook <jestabro@vyos.io>2025-01-31 09:36:24 -0600
committerJohn Estabrook <jestabro@vyos.io>2025-02-06 09:25:32 -0600
commitf5152b3de2a52b7a8d05c3cdc18d5f690c76bfba (patch)
tree035f46c458e3100284e19f737d6cbdce19b40fca /src/commit.ml
parent84e3fcb9ec8e20c0251494e489fbbe766e654b31 (diff)
downloadvyconf-f5152b3de2a52b7a8d05c3cdc18d5f690c76bfba.tar.gz
vyconf-f5152b3de2a52b7a8d05c3cdc18d5f690c76bfba.zip
T6946: add test function and executable
Diffstat (limited to 'src/commit.ml')
-rw-r--r--src/commit.ml20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/commit.ml b/src/commit.ml
index d85743a..3c593fd 100644
--- a/src/commit.ml
+++ b/src/commit.ml
@@ -2,6 +2,7 @@ module VT = Vyos1x.Vytree
module CT = Vyos1x.Config_tree
module CD = Vyos1x.Config_diff
module RT = Vyos1x.Reference_tree
+module FP = FilePath
type commit_data = {
script: string option;
@@ -126,3 +127,22 @@ let calculate_priority_lists rt at wt =
let cs_add' = get_commit_set rt add_tree in
let cs_del, cs_add = legacy_order del_tree cs_del' cs_add' in
List.rev (CS.elements cs_del), CS.elements cs_add
+
+let show_commit_data at wt =
+ let vc =
+ Startup.load_daemon_config Defaults.defaults.config_file in
+ let rt_opt =
+ Startup.read_reference_tree (FP.concat vc.reftree_dir vc.reference_tree)
+ in
+ match rt_opt with
+ | Error msg -> msg
+ | Ok rt ->
+ let del_list, add_list =
+ calculate_priority_lists rt at wt
+ in
+ let sprint_commit_data acc s =
+ acc ^ "\n" ^ (commit_data_to_yojson s |> Yojson.Safe.to_string)
+ in
+ let del_out = List.fold_left sprint_commit_data "" del_list in
+ let add_out = List.fold_left sprint_commit_data "" add_list in
+ del_out ^ "\n" ^ add_out