added empty extractor functions & imported to main
This commit is contained in:
parent
0564cc55c1
commit
baa881b4fa
2 changed files with 184 additions and 183 deletions
|
|
@ -1,30 +1,5 @@
|
||||||
use std::{fs, io, path::Path};
|
use std::{fs, io, path::Path};
|
||||||
use unrar::Archive;
|
use unrar::Archive;
|
||||||
use xz2::bufread::XzDecoder;
|
|
||||||
|
|
||||||
// pub fn extract_xz(xz_file: &Path) -> io::Result<()> {
|
|
||||||
// let file = fs::File::open(xz_file)?;
|
|
||||||
// let decompressor = XzDecoder::new(file);
|
|
||||||
// let mut archive = tar::Archive::new(decompressor);
|
|
||||||
|
|
||||||
// for entry in archive.entries()? {
|
|
||||||
// let mut entry = entry?;
|
|
||||||
|
|
||||||
// let entry_path = entry.path()?;
|
|
||||||
// let full_path = Path::new("output_directory/").join(entry_path);
|
|
||||||
|
|
||||||
// if entry.header().entry_type().is_dir() {
|
|
||||||
// fs::create_dir_all(&full_path)?;
|
|
||||||
// } else {
|
|
||||||
// fs::create_dir_all(&full_path.parent().unwrap())?;
|
|
||||||
|
|
||||||
// let mut file = fs::File::create(&full_path)?;
|
|
||||||
// io::copy(&mut entry, &mut file)?;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// Ok(())
|
|
||||||
// }
|
|
||||||
|
|
||||||
pub fn extract_zip(zip_file: &Path) -> io::Result<()> {
|
pub fn extract_zip(zip_file: &Path) -> io::Result<()> {
|
||||||
let file = fs::File::open(zip_file)?;
|
let file = fs::File::open(zip_file)?;
|
||||||
|
|
@ -119,3 +94,25 @@ pub fn extract_rar(rar_file: &Path) -> Result<(), Box<dyn std::error::Error>> {
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
pub fn extract_bz2(){}
|
||||||
|
pub fn extract_tbz2(){}
|
||||||
|
pub fn extract_tgz(){}
|
||||||
|
pub fn extract_txz(){}
|
||||||
|
pub fn extract_lzma(){}
|
||||||
|
pub fn extract_gz(){}
|
||||||
|
pub fn extract_xz(){}
|
||||||
|
pub fn extract_z(){}
|
||||||
|
pub fn extract_7z(){}
|
||||||
|
pub fn extract_arj(){}
|
||||||
|
pub fn extract_cab(){}
|
||||||
|
pub fn extract_chm(){}
|
||||||
|
pub fn extract_deb(){}
|
||||||
|
pub fn extract_dmg(){}
|
||||||
|
pub fn extract_iso(){}
|
||||||
|
pub fn extract_lzh(){}
|
||||||
|
pub fn extract_msi(){}
|
||||||
|
pub fn extract_rpm(){}
|
||||||
|
pub fn extract_udf(){}
|
||||||
|
pub fn extract_wim(){}
|
||||||
|
pub fn extract_xar(){}
|
||||||
|
pub fn extract_exe(){}
|
||||||
|
|
|
||||||
320
src/main.rs
320
src/main.rs
|
|
@ -1,5 +1,32 @@
|
||||||
mod extractors;
|
mod extractors;
|
||||||
use extractors::{extract_zip, extract_rar, extract_tar};
|
use extractors::{
|
||||||
|
extract_zip,
|
||||||
|
extract_rar,
|
||||||
|
extract_tar,
|
||||||
|
extract_bz2,
|
||||||
|
extract_tbz2,
|
||||||
|
extract_tgz,
|
||||||
|
extract_txz,
|
||||||
|
extract_lzma,
|
||||||
|
extract_gz,
|
||||||
|
extract_gz,
|
||||||
|
extract_xz,
|
||||||
|
extract_z,
|
||||||
|
extract_7z,
|
||||||
|
extract_arj,
|
||||||
|
extract_cab,
|
||||||
|
extract_chm,
|
||||||
|
extract_deb,
|
||||||
|
extract_dmg,
|
||||||
|
extract_iso,
|
||||||
|
extract_lzh,
|
||||||
|
extract_msi,
|
||||||
|
extract_rpm,
|
||||||
|
extract_udf,
|
||||||
|
extract_wim,
|
||||||
|
extract_xar,
|
||||||
|
extract_exe
|
||||||
|
};
|
||||||
fn main() {
|
fn main() {
|
||||||
std::process::exit(run());
|
std::process::exit(run());
|
||||||
}
|
}
|
||||||
|
|
@ -12,31 +39,6 @@ fn main() {
|
||||||
TODO: [ ] Write for loop to iter over all extensions of a file to handle
|
TODO: [ ] Write for loop to iter over all extensions of a file to handle
|
||||||
files that are tared and then compressed ex: foo.tar.gz, foo.tar.gz
|
files that are tared and then compressed ex: foo.tar.gz, foo.tar.gz
|
||||||
*/
|
*/
|
||||||
/*
|
|
||||||
TODO: [ ] add support for decompression of:
|
|
||||||
[] bz2
|
|
||||||
[] tbz2
|
|
||||||
[] tgz
|
|
||||||
[] txz
|
|
||||||
[] lzma
|
|
||||||
[] gz
|
|
||||||
[] xz
|
|
||||||
[] z
|
|
||||||
[] 7z
|
|
||||||
[] arj
|
|
||||||
[] cab
|
|
||||||
[] chm
|
|
||||||
[] deb
|
|
||||||
[] dmg
|
|
||||||
[] iso
|
|
||||||
[] lzh
|
|
||||||
[] msi
|
|
||||||
[] rpm
|
|
||||||
[] udf
|
|
||||||
[] wim
|
|
||||||
[] xar
|
|
||||||
[] exe
|
|
||||||
*/
|
|
||||||
fn run() -> i32 {
|
fn run() -> i32 {
|
||||||
let args: Vec<_> = std::env::args().collect();
|
let args: Vec<_> = std::env::args().collect();
|
||||||
if args.len() < 2 {
|
if args.len() < 2 {
|
||||||
|
|
@ -64,138 +66,140 @@ fn run() -> i32 {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// "xz" => {
|
/*
|
||||||
// if let Err(err) = extract_xz(&fname) {
|
"xz" => {
|
||||||
// println!("Error extracting XZ: {}", err);
|
if let Err(err) = extract_xz(&fname) {
|
||||||
// return 1;
|
println!("Error extracting XZ: {}", err);
|
||||||
// }
|
return 1;
|
||||||
// }
|
}
|
||||||
// "gz" => {
|
}
|
||||||
// if let Err(err) = extract_gz(&fname) {
|
"gz" => {
|
||||||
// println!("Error extracting GZ: {}", err);
|
if let Err(err) = extract_gz(&fname) {
|
||||||
// return 1;
|
println!("Error extracting GZ: {}", err);
|
||||||
// }
|
return 1;
|
||||||
// }
|
}
|
||||||
// "bz2" => {
|
}
|
||||||
// if let Err(err) = extract_bz2(&fname) {
|
"bz2" => {
|
||||||
// println!("Error extracting BZ2: {}", err);
|
if let Err(err) = extract_bz2(&fname) {
|
||||||
// return 1;
|
println!("Error extracting BZ2: {}", err);
|
||||||
// }
|
return 1;
|
||||||
// }
|
}
|
||||||
// "tbz2" => {
|
}
|
||||||
// if let Err(err) = extract_tbz2(&fname) {
|
"tbz2" => {
|
||||||
// println!("Error extracting TBZ2: {}", err);
|
if let Err(err) = extract_tbz2(&fname) {
|
||||||
// return 1;
|
println!("Error extracting TBZ2: {}", err);
|
||||||
// }
|
return 1;
|
||||||
// }
|
}
|
||||||
// "txz" => {
|
}
|
||||||
// if let Err(err) = extract_txz(&fname) {
|
"txz" => {
|
||||||
// println!("Error extracting TXZ: {}", err);
|
if let Err(err) = extract_txz(&fname) {
|
||||||
// return 1;
|
println!("Error extracting TXZ: {}", err);
|
||||||
// }
|
return 1;
|
||||||
// }
|
}
|
||||||
// "tgz" => {
|
}
|
||||||
// if let Err(err) = extract_tgz(&fname) {
|
"tgz" => {
|
||||||
// println!("Error extracting TGZ: {}", err);
|
if let Err(err) = extract_tgz(&fname) {
|
||||||
// return 1;
|
println!("Error extracting TGZ: {}", err);
|
||||||
// }
|
return 1;
|
||||||
// }
|
}
|
||||||
// "lzma" => {
|
}
|
||||||
// if let Err(err) = extract_lzma(&fname) {
|
"lzma" => {
|
||||||
// println!("Error extracting LZMA: {}", err);
|
if let Err(err) = extract_lzma(&fname) {
|
||||||
// return 1;
|
println!("Error extracting LZMA: {}", err);
|
||||||
// }
|
return 1;
|
||||||
// }
|
}
|
||||||
// "z" => {
|
}
|
||||||
// if let Err(err) = extract_z(&fname) {
|
"z" => {
|
||||||
// println!("Error extracting Z: {}", err);
|
if let Err(err) = extract_z(&fname) {
|
||||||
// return 1;
|
println!("Error extracting Z: {}", err);
|
||||||
// }
|
return 1;
|
||||||
// }
|
}
|
||||||
// "7z" => {
|
}
|
||||||
// if let Err(err) = extract_7z(&fname) {
|
"7z" => {
|
||||||
// println!("Error extracting 7Z: {}", err);
|
if let Err(err) = extract_7z(&fname) {
|
||||||
// return 1;
|
println!("Error extracting 7Z: {}", err);
|
||||||
// }
|
return 1;
|
||||||
// }
|
}
|
||||||
// "arj" => {
|
}
|
||||||
// if let Err(err) = extract_arj(&fname) {
|
"arj" => {
|
||||||
// println!("Error extracting ARJ: {}", err);
|
if let Err(err) = extract_arj(&fname) {
|
||||||
// return 1;
|
println!("Error extracting ARJ: {}", err);
|
||||||
// }
|
return 1;
|
||||||
// }
|
}
|
||||||
// "cab" => {
|
}
|
||||||
// if let Err(err) = extract_cab(&fname) {
|
"cab" => {
|
||||||
// println!("Error extracting CAB: {}", err);
|
if let Err(err) = extract_cab(&fname) {
|
||||||
// return 1;
|
println!("Error extracting CAB: {}", err);
|
||||||
// }
|
return 1;
|
||||||
// }
|
}
|
||||||
// "chm" => {
|
}
|
||||||
// if let Err(err) = extract_chm(&fname) {
|
"chm" => {
|
||||||
// println!("Error extracting CHM: {}", err);
|
if let Err(err) = extract_chm(&fname) {
|
||||||
// return 1;
|
println!("Error extracting CHM: {}", err);
|
||||||
// }
|
return 1;
|
||||||
// }
|
}
|
||||||
// "deb" => {
|
}
|
||||||
// if let Err(err) = extract_deb(&fname) {
|
"deb" => {
|
||||||
// println!("Error extracting DEB: {}", err);
|
if let Err(err) = extract_deb(&fname) {
|
||||||
// return 1;
|
println!("Error extracting DEB: {}", err);
|
||||||
// }
|
return 1;
|
||||||
// }
|
}
|
||||||
// "dmg" => {
|
}
|
||||||
// if let Err(err) = extract_dmg(&fname) {
|
"dmg" => {
|
||||||
// println!("Error extracting DMG: {}", err);
|
if let Err(err) = extract_dmg(&fname) {
|
||||||
// return 1;
|
println!("Error extracting DMG: {}", err);
|
||||||
// }
|
return 1;
|
||||||
// }
|
}
|
||||||
// "iso" => {
|
}
|
||||||
// if let Err(err) = extract_iso(&fname) {
|
"iso" => {
|
||||||
// println!("Error extracting ISO: {}", err);
|
if let Err(err) = extract_iso(&fname) {
|
||||||
// return 1;
|
println!("Error extracting ISO: {}", err);
|
||||||
// }
|
return 1;
|
||||||
// }
|
}
|
||||||
// "lzh" => {
|
}
|
||||||
// if let Err(err) = extract_lzh(&fname) {
|
"lzh" => {
|
||||||
// println!("Error extracting LZH: {}", err);
|
if let Err(err) = extract_lzh(&fname) {
|
||||||
// return 1;
|
println!("Error extracting LZH: {}", err);
|
||||||
// }
|
return 1;
|
||||||
// }
|
}
|
||||||
// "msi" => {
|
}
|
||||||
// if let Err(err) = extract_msi(&fname) {
|
"msi" => {
|
||||||
// println!("Error extracting MSI: {}", err);
|
if let Err(err) = extract_msi(&fname) {
|
||||||
// return 1;
|
println!("Error extracting MSI: {}", err);
|
||||||
// }
|
return 1;
|
||||||
// }
|
}
|
||||||
// "rpm" => {
|
}
|
||||||
// if let Err(err) = extract_rpm(&fname) {
|
"rpm" => {
|
||||||
// println!("Error extracting RPM: {}", err);
|
if let Err(err) = extract_rpm(&fname) {
|
||||||
// return 1;
|
println!("Error extracting RPM: {}", err);
|
||||||
// }
|
return 1;
|
||||||
// }
|
}
|
||||||
// "udf" => {
|
}
|
||||||
// if let Err(err) = extract_udf(&fname) {
|
"udf" => {
|
||||||
// println!("Error extracting UDF: {}", err);
|
if let Err(err) = extract_udf(&fname) {
|
||||||
// return 1;
|
println!("Error extracting UDF: {}", err);
|
||||||
// }
|
return 1;
|
||||||
// }
|
}
|
||||||
// "wim" => {
|
}
|
||||||
// if let Err(err) = extract_wim(&fname) {
|
"wim" => {
|
||||||
// println!("Error extracting WIM: {}", err);
|
if let Err(err) = extract_wim(&fname) {
|
||||||
// return 1;
|
println!("Error extracting WIM: {}", err);
|
||||||
// }
|
return 1;
|
||||||
// }
|
}
|
||||||
// "xar" => {
|
}
|
||||||
// if let Err(err) = extract_udf(&fname) {
|
"xar" => {
|
||||||
// println!("Error extracting XAR: {}", err);
|
if let Err(err) = extract_udf(&fname) {
|
||||||
// return 1;
|
println!("Error extracting XAR: {}", err);
|
||||||
// }
|
return 1;
|
||||||
// }
|
}
|
||||||
// "exe" => {
|
}
|
||||||
// if let Err(err) = extract_exe(&fname) {
|
"exe" => {
|
||||||
// println!("Error extracting EXE: {}", err);
|
if let Err(err) = extract_exe(&fname) {
|
||||||
// return 1;
|
println!("Error extracting EXE: {}", err);
|
||||||
// }
|
return 1;
|
||||||
// }
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
_ => {
|
_ => {
|
||||||
println!("Unsupported file extension: {}", extension);
|
println!("Unsupported file extension: {}", extension);
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue