Sha256: 6707313957e4474b1fc2422b535080d6bfca9a5e55089930ce4cdc9cdd137905
Contents?: true
Size: 1.31 KB
Versions: 25
Compression:
Stored size: 1.31 KB
Contents
use clap::{App, Arg}; use std::fs; use std::io; fn main() { // This will be a simple application: // takes a single (repeatable and optional) argument. let matches = App::new("zstdcat") .version("0.1") .author("Yann Collet (zstd), Alexandre Bury (zstd-rs)") .about("Decompress FILEs to standard output.") .arg(Arg::new("FILE").index(1).multiple_occurrences(true).help( "Files to decompress. With no file, or when given -, \ read standard input.", )) .get_matches(); // If nothign was given, act as if `-` was there. match matches.values_of("FILE") { None => decompress_file("-").unwrap(), Some(files) => { // Decompress each file sequentially. for file in files { decompress_file(file).unwrap(); } } } } // Dispatch the source reader depending on the filename fn decompress_file(file: &str) -> io::Result<()> { match file { "-" => decompress_from(io::stdin()), other => decompress_from(io::BufReader::new(fs::File::open(other)?)), } } // Decompress from a `Reader` into stdout fn decompress_from<R: io::Read>(r: R) -> io::Result<()> { let mut decoder = zstd::Decoder::new(r)?; io::copy(&mut decoder, &mut io::stdout())?; Ok(()) }
Version data entries
25 entries across 25 versions & 1 rubygems