keyhog 0.5.73

GPU-accelerated secret scanner for code, Git history, cloud, containers, browser assets, and live credential verification
//! `keyhog config` surfaces resolved runtime configuration without scanning.

use crate::args::ConfigArgs;
use crate::orchestrator_config::{render_effective_config, resolve_scan_config};
use anyhow::Result;
use std::process::ExitCode;

pub(crate) fn run(mut args: ConfigArgs) -> Result<ExitCode> {
    if !args.effective {
        anyhow::bail!(
            "`keyhog config` requires --effective. Fix: run `keyhog config --effective [scan flags]`."
        );
    }

    // Resolution (config merge) then publication of the rendered config.
    let resolved = {
        let _resolve_span = keyhog_profile::span(keyhog_profile::Stage::Preprocess);
        resolve_scan_config(&mut args.scan)?
    };
    let _report_span = keyhog_profile::span(keyhog_profile::Stage::Reporting);
    print!("{}", render_effective_config(&resolved));
    Ok(ExitCode::SUCCESS)
}