diff --git a/cmd/cgr-engine/cgr-engine.go b/cmd/cgr-engine/cgr-engine.go index 61d591a25..c1630c1d7 100644 --- a/cmd/cgr-engine/cgr-engine.go +++ b/cmd/cgr-engine/cgr-engine.go @@ -56,6 +56,7 @@ type flags struct { config struct { path string check bool + print bool version bool } process struct { @@ -93,6 +94,7 @@ func newFlags() *flags { f.StringVar(&f.config.path, utils.CfgPathCgr, utils.ConfigPath, "Configuration directory path") f.BoolVar(&f.config.check, utils.CheckCfgCgr, false, "Verify the config without starting the engine") + f.BoolVar(&f.config.print, utils.PrintCfgCgr, false, "Print configuration object in JSON format") f.BoolVar(&f.config.version, utils.VersionCgr, false, "Print application version and exit") f.StringVar(&f.process.pidFile, utils.PidCgr, "", "Path to write the PID file") @@ -162,6 +164,12 @@ func runCGREngine(fs []string) (err error) { } } + if flags.config.print { + cfgJSON := utils.ToIJSON(cfg.AsMapInterface()) + utils.Logger.Info(fmt.Sprintf( + "Configuration loaded from %q:\n%s", flags.config.path, cfgJSON)) + } + var cpuPrfF *os.File if flags.profiling.cpu.dir != utils.EmptyString { cpuPath := filepath.Join(flags.profiling.cpu.dir, utils.CpuPathCgr) diff --git a/cmd/cgr-engine/flag_test.go b/cmd/cgr-engine/flag_test.go index 9affd0dc2..3345351cb 100644 --- a/cmd/cgr-engine/flag_test.go +++ b/cmd/cgr-engine/flag_test.go @@ -134,6 +134,13 @@ func TestFlags(t *testing.T) { defaultVal: false, want: true, }, + { + name: "print_config", + flags: []string{"-print_config", "true"}, + flagVar: &flags.config.print, + defaultVal: false, + want: true, + }, { name: "set_versions", flags: []string{"-set_versions"},