cgr-engine: add flag to print cfg in JSON format

This commit is contained in:
ionutboangiu
2025-05-29 17:35:36 +03:00
committed by Dan Christian Bogos
parent eed6b8a51a
commit 38fa360df9
2 changed files with 15 additions and 0 deletions

View File

@@ -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)

View File

@@ -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"},