use std::io::{self, Read};

fn main() {
    std::process::exit(real_main());
}

fn real_main() -> i32 {
    let stdin = io::stdin();
    let mut stdin_handle = stdin.lock();
    let mut buf = [0u8; 16];

    loop {
        match zip::read::read_zipfile_from_stream(&mut stdin_handle) {
            Ok(Some(mut file)) => {
                println!("{}: {} bytes ({} bytes packed)", file.name(), file.size(), file.compressed_size());
                match file.read(&mut buf) {
                    Ok(n) => println!("The first {} bytes are: {:?}", n, &buf[0..n]),
                    Err(e) => println!("Could not read the file: {:?}", e),
                };
            },
            Ok(None) => break,
            Err(e) => {
                println!("Error encountered while reading zip: {:?}", e);
                return 1;
            },
        }
    }
    return 0;
}
