Skip to main content

foch_cli/cli/handler/
simplify.rs

1use 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}