founder 0.11.0

The package provides a font toolbox.
Documentation
use std::path::PathBuf;
use std::process::Command;

macro_rules! exit(
    ($code:expr) => (std::process::exit($code));
);

macro_rules! some(
    ($option:expr) => (match $option {
        Some(value) => value,
        None => {
            eprintln!(concat!("Error: failed to unwrap (", stringify!($option), ")."));
            exit!(1);
        }
    });
);

fn main() {
    let arguments: Vec<_> = std::env::args().collect();
    let prefix = PathBuf::from(some!(arguments.first()));
    let prefix = some!(some!(prefix.file_name()).to_str());
    if arguments.len() > 1 {
        let program = format!("{prefix}-{}", arguments[1]);
        let arguments = arguments.iter().skip(2).collect::<Vec<_>>();
        match Command::new(program).args(arguments).status() {
            Ok(value) => {
                exit!(value.code().unwrap_or(0));
            }
            Err(error) => {
                eprintln!("Error: {error}.");
                exit!(1);
            }
        }
    } else {
        eprintln!("Usage: {prefix} [command] [arguments]");
        exit!(1);
    }
}