extern crate fstrings;
use clap::Parser;
use mmv_lib::{
args::MmvArgs, error_handler::react_on_error, finder::get_file_names_in_directory,
matcher::match_pattern_with_file_names,
};
fn main() {
let args = MmvArgs::parse();
let input_pattern = args.get_parsed_input_pattern();
let file_names_in_directory = match get_file_names_in_directory(&input_pattern.get_directory())
{
Err(error) => {
react_on_error(error);
return;
}
Ok(file_names) => file_names,
};
let parsed_matching_files =
match match_pattern_with_file_names(&input_pattern, &file_names_in_directory) {
Err(error) => {
react_on_error(error);
return;
}
Ok(parsed_matching_files) => parsed_matching_files,
};
let output_pattern = args.get_parsed_output();
for parsed_file in parsed_matching_files {
let old_file_path = parsed_file.get_path(&input_pattern.get_directory());
let new_file_path = output_pattern.get_filled_path(parsed_file.get_fragments());
println!("{:?} -> {:?}", old_file_path, new_file_path);
}
}