Early progress in supporting .tar files
[ouch.git] / src / main.rs
blob06744633fc193f93ca7a1c6532ce6a258e85a3c2
1 use std::{convert::TryFrom, fs::File, path::{Path, PathBuf}};
3 use colored::Colorize;
4 use tar::Archive;
6 mod cli;
7 mod error;
8 mod extension;
9 mod file;
10 mod test;
11 mod evaluator;
13 mod decompressors;
15 fn main() {
16     // let matches = cli::get_matches();
17     // match cli::Command::try_from(matches) {
18     //     Ok(command) => {
19     //         let mut eval = evaluator::Evaluator::new(command);
20     //         eval.evaluate();
21     //     }
22     //     Err(err) => {
23     //         print!("{}: {}\n", "error".red(), err);
24     //     }
25     // }
28     // Testing tar unarchival
29     let file = File::open("ouch.tar").unwrap();
30     let mut a = Archive::new(file);
32     for file in a.entries().unwrap() {
33         // Make sure there wasn't an I/O error
34         let mut file = file.unwrap();
36         let path = if let Ok(path) = file.path() {
37             path
38         } else {
39             continue;
40         };
41         let name = path.to_string_lossy();
43         file.unpack(format!("{}", name)).unwrap();
44     }