mirror of
				https://github.com/pcvolkmer/osc-variant.git
				synced 2025-10-29 23:56:11 +00:00 
			
		
		
		
	Add progress bar to OSB file check
This commit is contained in:
		
							
								
								
									
										59
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										59
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							| @@ -303,9 +303,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" | ||||
|  | ||||
| [[package]] | ||||
| name = "errno" | ||||
| version = "0.3.5" | ||||
| version = "0.3.6" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" | ||||
| checksum = "7c18ee0ed65a5f1f81cac6b1d213b69c35fa47d4252ad41f1486dbd8226fe36e" | ||||
| dependencies = [ | ||||
|  "libc", | ||||
|  "windows-sys 0.48.0", | ||||
| @@ -380,6 +380,19 @@ dependencies = [ | ||||
|  "hashbrown", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "indicatif" | ||||
| version = "0.17.7" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25" | ||||
| dependencies = [ | ||||
|  "console", | ||||
|  "instant", | ||||
|  "number_prefix", | ||||
|  "portable-atomic", | ||||
|  "unicode-width", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "inout" | ||||
| version = "0.1.3" | ||||
| @@ -389,6 +402,15 @@ dependencies = [ | ||||
|  "generic-array", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "instant" | ||||
| version = "0.1.12" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" | ||||
| dependencies = [ | ||||
|  "cfg-if", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "itoa" | ||||
| version = "1.0.9" | ||||
| @@ -412,15 +434,15 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" | ||||
|  | ||||
| [[package]] | ||||
| name = "libc" | ||||
| version = "0.2.149" | ||||
| version = "0.2.150" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" | ||||
| checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" | ||||
|  | ||||
| [[package]] | ||||
| name = "linux-raw-sys" | ||||
| version = "0.4.10" | ||||
| version = "0.4.11" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f" | ||||
| checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" | ||||
|  | ||||
| [[package]] | ||||
| name = "memchr" | ||||
| @@ -437,6 +459,12 @@ dependencies = [ | ||||
|  "adler", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "number_prefix" | ||||
| version = "0.4.0" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" | ||||
|  | ||||
| [[package]] | ||||
| name = "object" | ||||
| version = "0.32.1" | ||||
| @@ -455,6 +483,7 @@ dependencies = [ | ||||
|  "console", | ||||
|  "deob", | ||||
|  "dialoguer", | ||||
|  "indicatif", | ||||
|  "quick-xml", | ||||
|  "serde", | ||||
|  "serde_yaml", | ||||
| @@ -497,6 +526,12 @@ version = "0.3.27" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" | ||||
|  | ||||
| [[package]] | ||||
| name = "portable-atomic" | ||||
| version = "1.5.1" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "3bccab0e7fd7cc19f820a1c8c91720af652d0c88dc9664dd72aef2614f04af3b" | ||||
|  | ||||
| [[package]] | ||||
| name = "powerfmt" | ||||
| version = "0.2.0" | ||||
| @@ -573,18 +608,18 @@ checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" | ||||
|  | ||||
| [[package]] | ||||
| name = "serde" | ||||
| version = "1.0.190" | ||||
| version = "1.0.192" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7" | ||||
| checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" | ||||
| dependencies = [ | ||||
|  "serde_derive", | ||||
| ] | ||||
|  | ||||
| [[package]] | ||||
| name = "serde_derive" | ||||
| version = "1.0.190" | ||||
| version = "1.0.192" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3" | ||||
| checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" | ||||
| dependencies = [ | ||||
|  "proc-macro2", | ||||
|  "quote", | ||||
| @@ -653,9 +688,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" | ||||
|  | ||||
| [[package]] | ||||
| name = "syn" | ||||
| version = "2.0.38" | ||||
| version = "2.0.39" | ||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | ||||
| checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" | ||||
| checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" | ||||
| dependencies = [ | ||||
|  "proc-macro2", | ||||
|  "quote", | ||||
|   | ||||
| @@ -20,6 +20,7 @@ quick-xml = { version = "0.31", features = ["escape-html", "serialize"], default | ||||
| console = "0.15" | ||||
| sha256 = "1.4" | ||||
| dialoguer = "0.11" | ||||
| indicatif = "0.17" | ||||
|  | ||||
| deob = { path = "./libs/deob", optional = true } | ||||
| zip = { version = "0.6", optional = true } | ||||
|   | ||||
| @@ -26,6 +26,8 @@ use std::fs; | ||||
| use std::io::Read; | ||||
| use std::path::Path; | ||||
|  | ||||
| use indicatif::ProgressBar; | ||||
|  | ||||
| use crate::checks::{osc, CheckNotice}; | ||||
|  | ||||
| #[cfg(feature = "unzip-osb")] | ||||
| @@ -52,7 +54,10 @@ pub fn check_file(file: &Path, password: &str) -> Vec<CheckNotice> { | ||||
|  | ||||
|     let mut result = vec![]; | ||||
|  | ||||
|     let progress_bar = ProgressBar::new(archive.len() as u64); | ||||
|  | ||||
|     for i in 0..archive.len() { | ||||
|         progress_bar.inc(1); | ||||
|         if let Ok(Ok(mut zip_file)) = archive.by_index_decrypt(i, password.as_bytes()) { | ||||
|             if zip_file.is_file() && zip_file.name().ends_with(".osc") { | ||||
|                 result.push(CheckNotice::Info { | ||||
| @@ -75,6 +80,7 @@ pub fn check_file(file: &Path, password: &str) -> Vec<CheckNotice> { | ||||
|             }]; | ||||
|         } | ||||
|     } | ||||
|     progress_bar.finish_and_clear(); | ||||
|  | ||||
|     result | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user