rs-tars2zips 0.1.0

Converts tar files to zip files
Documentation
use std::process::ExitCode;

use std::io;

use rs_tars2zips::stdin2tarnames2zip_default;

fn env_val_by_key(key: &'static str) -> impl FnMut() -> Result<String, io::Error> {
    move || {
        std::env::var(key)
            .map_err(|e| format!("env val {key} missing: {e}"))
            .map_err(io::Error::other)
    }
}

fn env2outzip_dir() -> Result<String, io::Error> {
    env_val_by_key("ENV_OUTPUT_ZIPS_DIR")()
}

fn sub() -> Result<(), io::Error> {
    let ozdir: String = env2outzip_dir()?;
    stdin2tarnames2zip_default(ozdir)
}

fn main() -> ExitCode {
    sub().map(|_| ExitCode::SUCCESS).unwrap_or_else(|e| {
        eprintln!("{e}");
        ExitCode::FAILURE
    })
}