use crate::cli::global::GlobalFlags;
use crate::plan::Plan;
use crate::tx::context::EngineContext;
use crate::write::WritePolicy;
use std::path::Path;
pub(crate) fn build_write_policy(
plan: &Plan,
ctx: &EngineContext,
path: &Path,
) -> anyhow::Result<WritePolicy> {
let mut base_flags = ctx.to_global_flags();
if let Some(ov) = &plan.write_policy
&& let Some(ec) = ov.respect_editorconfig
{
base_flags = GlobalFlags::with_editorconfig(&base_flags, ec);
}
let mut write_policy = crate::write::policy_from_flags(&base_flags, Some(path));
if let Some(ov) = &plan.write_policy {
write_policy.apply_override(ov)?;
}
Ok(write_policy)
}