Files
tacview-splitter/src/main.rs
T
2022-08-12 16:39:38 +02:00

39 lines
1.2 KiB
Rust

mod constants;
mod processor;
mod reader;
mod tacview;
mod writer;
use std::process;
use crate::{tacview::Coalition, writer::StringWriter};
fn main() {
if let Err(err) = main_inner() {
eprintln!("{err}");
process::exit(1);
}
}
fn main_inner() -> Result<(), Box<dyn std::error::Error>> {
let (input_filename, is_zip) = reader::find_input_file()?;
println!("Processing {}", input_filename);
let lines = reader::read_data(&input_filename, is_zip)?;
let (header, body) = processor::split_into_header_and_body(&lines)?;
let coalition_per_line = processor::divide_body_by_coalition(body)?;
let mut blue_writer = writer::create_writer(is_zip, &input_filename)?;
blue_writer.write_strings(header)?;
blue_writer.write_for_coalition(body, &coalition_per_line, Coalition::Blue)?;
let mut red_writer = writer::create_writer(is_zip, &input_filename)?;
red_writer.write_strings(header)?;
red_writer.write_for_coalition(body, &coalition_per_line, Coalition::Red)?;
let mut purple_writer = writer::create_writer(is_zip, &input_filename)?;
purple_writer.write_strings(header)?;
purple_writer.write_for_coalition(body, &coalition_per_line, Coalition::Purple)?;
Ok(())
}