use clap::Parser;
use porydelete::filter::PdFilter;
use porydelete::*;
#[derive(Parser)]
pub struct Args {
pub command: String,
pub value: String,
}
impl Args {
pub fn other_case_command(&self) {
eprintln!(
"Command '{}' is not an available command. Use '--help' for more information.",
self.command
);
}
pub fn other_case_value(&self) {
eprintln!(
"Value '{}' is not an available command. Use '--help' for more information.",
self.command
);
}
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
let args = Args::parse();
let attr_filter = filter::MaFilter {
elem: args.value.clone(),
start_dir: String::from("./data/maps"),
dest_dir: String::from("./data/maps/porydelete-filter"),
};
match args.command.as_str() {
"attr" => del_attribute::execute_del(&args.value),
"map" => del_map::execute_del(&args.value),
"tileset" => Ok(()),
"script" => Ok(()),
"pkmn" => Ok(()),
"item" => Ok(()),
"list" => Ok(()),
"attr-fil" => Ok(attr_filter.do_filter()),
"attr-defil" => Ok(attr_filter.do_defilter()),
_ => Ok(args.other_case_command()),
}
}