foch_cli/cli/handler/
simplify.rs1use crate::cli::arg::SimplifyArgs;
2use crate::cli::handler::{HandlerResult, resolve_input_source};
3use foch::input::{Config, InputRequest};
4use foch::simplify::{SimplifyOptions, run_simplify_with_options};
5
6pub fn handle_simplify(simplify_args: &SimplifyArgs, config: Config) -> HandlerResult {
7 let request = InputRequest::new(
8 resolve_input_source(simplify_args.playset_path.as_deref(), &config)?,
9 config,
10 );
11 let summary = run_simplify_with_options(
12 request,
13 SimplifyOptions {
14 include_game_base: !simplify_args.no_game_base,
15 target_mod_id: simplify_args.target.clone(),
16 out_dir: simplify_args.out.clone(),
17 },
18 )?;
19 println!(
20 "simplify complete: target_root={} removed_definitions={} removed_files={} report={}",
21 summary.target_root.display(),
22 summary.removed_definition_count,
23 summary.removed_file_count,
24 summary.report_path.display()
25 );
26 Ok(0)
27}