ruic 0.1.1

Load Qt Designer .ui files into Rust code at compile time
Documentation
use ruic::{Config, Ruic};
use std::fs::File;
use std::io;
use std::process::Command;
use structopt::StructOpt;

fn main() -> Result<(), String> {
    try_main().map_err(|x| x.to_string())
}

fn try_main() -> io::Result<()> {
    let mut config = Config::from_args();
    let should_format = config.format;
    let path = config
        .out
        .take()
        .unwrap_or_else(|| config.path.join("uic.rs"));
    let file = File::create(&path)?;
    Ruic::new(file, config).process()?;
    if should_format {
        let status = Command::new("rustfmt").arg(&path).status()?;
        if !status.success() {
            return Err(match status.code() {
                Some(code) => io::Error::from_raw_os_error(code),
                None => io::Error::new(io::ErrorKind::Interrupted, "process terminated"),
            });
        }
    }
    Ok(())
}