rrn 0.1.4

batch rename files/dirs by regex
mod exec;
mod fsio;
mod param;

use crate::{
    exec::execute,
    param::{print_help, ParseArgFailure},
};
use rust_i18n::{available_locales, i18n, set_locale, t};
use std::env;

i18n!("locales", fallback = "en, zh");

fn main() {
    setup_locale();
    match param::args2param() {
        Ok(param) => execute(&param),
        Err(ParseArgFailure::Help | ParseArgFailure::Version) => (),
        Err(ParseArgFailure::Invalid) => {
            eprintln!("{}", t!("param.parse.error"));
            print_help();
        }
        Err(ParseArgFailure::RegexError(msg)) => {
            eprintln!("{}", msg);
        }
    }
}

fn setup_locale() {
    let env_lang = env::var("LANG").unwrap_or_else(|_| String::from("en"));
    let current_locale = env_lang.split_at(2).0;
    let vec = available_locales!();
    if vec.contains(&current_locale) {
        set_locale(current_locale);
    } else {
        set_locale("en");
    }
}