Allow setting thread number in CLI
This commit is contained in:
parent
4b6cf4bc9d
commit
1ee54c899f
|
@ -85,6 +85,8 @@ pub enum Commands {
|
|||
|
||||
#[derive(Debug, clap::Args)]
|
||||
pub struct DuplicatesArgs {
|
||||
#[clap(flatten)]
|
||||
pub thread_number: ThreadNumber,
|
||||
#[clap(flatten)]
|
||||
pub directories: Directories,
|
||||
#[clap(flatten)]
|
||||
|
@ -163,6 +165,8 @@ pub struct DuplicatesArgs {
|
|||
|
||||
#[derive(Debug, clap::Args)]
|
||||
pub struct EmptyFoldersArgs {
|
||||
#[clap(flatten)]
|
||||
pub thread_number: ThreadNumber,
|
||||
#[clap(flatten)]
|
||||
pub directories: Directories,
|
||||
#[clap(flatten)]
|
||||
|
@ -180,6 +184,8 @@ pub struct EmptyFoldersArgs {
|
|||
|
||||
#[derive(Debug, clap::Args)]
|
||||
pub struct BiggestFilesArgs {
|
||||
#[clap(flatten)]
|
||||
pub thread_number: ThreadNumber,
|
||||
#[clap(flatten)]
|
||||
pub directories: Directories,
|
||||
#[clap(flatten)]
|
||||
|
@ -205,6 +211,8 @@ pub struct BiggestFilesArgs {
|
|||
|
||||
#[derive(Debug, clap::Args)]
|
||||
pub struct EmptyFilesArgs {
|
||||
#[clap(flatten)]
|
||||
pub thread_number: ThreadNumber,
|
||||
#[clap(flatten)]
|
||||
pub directories: Directories,
|
||||
#[clap(flatten)]
|
||||
|
@ -226,6 +234,8 @@ pub struct EmptyFilesArgs {
|
|||
|
||||
#[derive(Debug, clap::Args)]
|
||||
pub struct TemporaryArgs {
|
||||
#[clap(flatten)]
|
||||
pub thread_number: ThreadNumber,
|
||||
#[clap(flatten)]
|
||||
pub directories: Directories,
|
||||
#[clap(flatten)]
|
||||
|
@ -245,6 +255,8 @@ pub struct TemporaryArgs {
|
|||
|
||||
#[derive(Debug, clap::Args)]
|
||||
pub struct SimilarImagesArgs {
|
||||
#[clap(flatten)]
|
||||
pub thread_number: ThreadNumber,
|
||||
#[clap(flatten)]
|
||||
pub directories: Directories,
|
||||
#[clap(flatten)]
|
||||
|
@ -313,6 +325,8 @@ pub struct SimilarImagesArgs {
|
|||
|
||||
#[derive(Debug, clap::Args)]
|
||||
pub struct SameMusicArgs {
|
||||
#[clap(flatten)]
|
||||
pub thread_number: ThreadNumber,
|
||||
#[clap(flatten)]
|
||||
pub directories: Directories,
|
||||
#[clap(flatten)]
|
||||
|
@ -359,6 +373,8 @@ pub struct SameMusicArgs {
|
|||
|
||||
#[derive(Debug, clap::Args)]
|
||||
pub struct InvalidSymlinksArgs {
|
||||
#[clap(flatten)]
|
||||
pub thread_number: ThreadNumber,
|
||||
#[clap(flatten)]
|
||||
pub directories: Directories,
|
||||
#[clap(flatten)]
|
||||
|
@ -380,6 +396,8 @@ pub struct InvalidSymlinksArgs {
|
|||
|
||||
#[derive(Debug, clap::Args)]
|
||||
pub struct BrokenFilesArgs {
|
||||
#[clap(flatten)]
|
||||
pub thread_number: ThreadNumber,
|
||||
#[clap(flatten)]
|
||||
pub directories: Directories,
|
||||
#[clap(flatten)]
|
||||
|
@ -401,6 +419,8 @@ pub struct BrokenFilesArgs {
|
|||
|
||||
#[derive(Debug, clap::Args)]
|
||||
pub struct SimilarVideosArgs {
|
||||
#[clap(flatten)]
|
||||
pub thread_number: ThreadNumber,
|
||||
#[clap(flatten)]
|
||||
pub directories: Directories,
|
||||
#[clap(flatten)]
|
||||
|
@ -449,6 +469,8 @@ pub struct SimilarVideosArgs {
|
|||
|
||||
#[derive(Debug, clap::Args)]
|
||||
pub struct BadExtensionsArgs {
|
||||
#[clap(flatten)]
|
||||
pub thread_number: ThreadNumber,
|
||||
#[clap(flatten)]
|
||||
pub directories: Directories,
|
||||
#[clap(flatten)]
|
||||
|
@ -517,6 +539,12 @@ pub struct NotRecursive {
|
|||
pub not_recursive: bool,
|
||||
}
|
||||
|
||||
#[derive(Debug, clap::Args)]
|
||||
pub struct ThreadNumber {
|
||||
#[clap(short = 'T', long, default_value = "0", help = "Limits thread number, 0(default) will use all available threads")]
|
||||
pub thread_number: usize,
|
||||
}
|
||||
|
||||
#[cfg(target_family = "unix")]
|
||||
#[derive(Debug, clap::Args)]
|
||||
pub struct ExcludeOtherFilesystems {
|
||||
|
|
|
@ -6,7 +6,7 @@ use clap::Parser;
|
|||
|
||||
use commands::Commands;
|
||||
use czkawka_core::big_file::SearchMode;
|
||||
use czkawka_core::common::{get_number_of_threads, set_default_number_of_threads};
|
||||
use czkawka_core::common::{get_number_of_threads, set_default_number_of_threads, set_number_of_threads};
|
||||
#[allow(unused_imports)] // It is used in release for print_results().
|
||||
use czkawka_core::common_traits::*;
|
||||
use czkawka_core::similar_images::test_image_conversion_speed;
|
||||
|
@ -34,8 +34,6 @@ mod commands;
|
|||
fn main() {
|
||||
let command = Args::parse().command;
|
||||
|
||||
set_default_number_of_threads();
|
||||
println!("Set thread number to {}", get_number_of_threads());
|
||||
#[cfg(debug_assertions)]
|
||||
println!("{command:?}");
|
||||
|
||||
|
@ -59,6 +57,7 @@ fn main() {
|
|||
|
||||
fn duplicates(duplicates: DuplicatesArgs) {
|
||||
let DuplicatesArgs {
|
||||
thread_number,
|
||||
directories,
|
||||
excluded_directories,
|
||||
excluded_items,
|
||||
|
@ -78,6 +77,8 @@ fn duplicates(duplicates: DuplicatesArgs) {
|
|||
case_sensitive_name_comparison,
|
||||
} = duplicates;
|
||||
|
||||
set_number_of_threads(thread_number.thread_number);
|
||||
|
||||
let mut df = DuplicateFinder::new();
|
||||
|
||||
df.set_included_directory(directories.directories);
|
||||
|
@ -113,6 +114,7 @@ fn duplicates(duplicates: DuplicatesArgs) {
|
|||
|
||||
fn empty_folders(empty_folders: EmptyFoldersArgs) {
|
||||
let EmptyFoldersArgs {
|
||||
thread_number,
|
||||
directories,
|
||||
delete_folders,
|
||||
file_to_save,
|
||||
|
@ -122,6 +124,8 @@ fn empty_folders(empty_folders: EmptyFoldersArgs) {
|
|||
exclude_other_filesystems,
|
||||
} = empty_folders;
|
||||
|
||||
set_number_of_threads(thread_number.thread_number);
|
||||
|
||||
let mut ef = EmptyFolder::new();
|
||||
|
||||
ef.set_included_directory(directories.directories);
|
||||
|
@ -147,6 +151,7 @@ fn empty_folders(empty_folders: EmptyFoldersArgs) {
|
|||
|
||||
fn biggest_files(biggest_files: BiggestFilesArgs) {
|
||||
let BiggestFilesArgs {
|
||||
thread_number,
|
||||
directories,
|
||||
excluded_directories,
|
||||
excluded_items,
|
||||
|
@ -160,6 +165,8 @@ fn biggest_files(biggest_files: BiggestFilesArgs) {
|
|||
smallest_mode,
|
||||
} = biggest_files;
|
||||
|
||||
set_number_of_threads(thread_number.thread_number);
|
||||
|
||||
let mut bf = BigFile::new();
|
||||
|
||||
bf.set_included_directory(directories.directories);
|
||||
|
@ -193,6 +200,7 @@ fn biggest_files(biggest_files: BiggestFilesArgs) {
|
|||
|
||||
fn empty_files(empty_files: EmptyFilesArgs) {
|
||||
let EmptyFilesArgs {
|
||||
thread_number,
|
||||
directories,
|
||||
excluded_directories,
|
||||
excluded_items,
|
||||
|
@ -204,6 +212,8 @@ fn empty_files(empty_files: EmptyFilesArgs) {
|
|||
exclude_other_filesystems,
|
||||
} = empty_files;
|
||||
|
||||
set_number_of_threads(thread_number.thread_number);
|
||||
|
||||
let mut ef = EmptyFiles::new();
|
||||
|
||||
ef.set_included_directory(directories.directories);
|
||||
|
@ -234,6 +244,7 @@ fn empty_files(empty_files: EmptyFilesArgs) {
|
|||
|
||||
fn temporary(temporary: TemporaryArgs) {
|
||||
let TemporaryArgs {
|
||||
thread_number,
|
||||
directories,
|
||||
excluded_directories,
|
||||
excluded_items,
|
||||
|
@ -244,6 +255,8 @@ fn temporary(temporary: TemporaryArgs) {
|
|||
not_recursive,
|
||||
} = temporary;
|
||||
|
||||
set_number_of_threads(thread_number.thread_number);
|
||||
|
||||
let mut tf = Temporary::new();
|
||||
|
||||
tf.set_included_directory(directories.directories);
|
||||
|
@ -273,6 +286,7 @@ fn temporary(temporary: TemporaryArgs) {
|
|||
|
||||
fn similar_images(similar_images: SimilarImagesArgs) {
|
||||
let SimilarImagesArgs {
|
||||
thread_number,
|
||||
directories,
|
||||
excluded_directories,
|
||||
excluded_items,
|
||||
|
@ -288,6 +302,8 @@ fn similar_images(similar_images: SimilarImagesArgs) {
|
|||
hash_size,
|
||||
} = similar_images;
|
||||
|
||||
set_number_of_threads(thread_number.thread_number);
|
||||
|
||||
let mut sf = SimilarImages::new();
|
||||
|
||||
sf.set_included_directory(directories.directories);
|
||||
|
@ -320,6 +336,7 @@ fn similar_images(similar_images: SimilarImagesArgs) {
|
|||
|
||||
fn same_music(same_music: SameMusicArgs) {
|
||||
let SameMusicArgs {
|
||||
thread_number,
|
||||
directories,
|
||||
excluded_directories,
|
||||
excluded_items,
|
||||
|
@ -333,6 +350,8 @@ fn same_music(same_music: SameMusicArgs) {
|
|||
music_similarity,
|
||||
} = same_music;
|
||||
|
||||
set_number_of_threads(thread_number.thread_number);
|
||||
|
||||
let mut mf = SameMusic::new();
|
||||
|
||||
mf.set_included_directory(directories.directories);
|
||||
|
@ -365,6 +384,7 @@ fn same_music(same_music: SameMusicArgs) {
|
|||
|
||||
fn invalid_symlinks(invalid_symlinks: InvalidSymlinksArgs) {
|
||||
let InvalidSymlinksArgs {
|
||||
thread_number,
|
||||
directories,
|
||||
excluded_directories,
|
||||
excluded_items,
|
||||
|
@ -376,6 +396,8 @@ fn invalid_symlinks(invalid_symlinks: InvalidSymlinksArgs) {
|
|||
delete_files,
|
||||
} = invalid_symlinks;
|
||||
|
||||
set_number_of_threads(thread_number.thread_number);
|
||||
|
||||
let mut ifs = InvalidSymlinks::new();
|
||||
|
||||
ifs.set_included_directory(directories.directories);
|
||||
|
@ -405,6 +427,7 @@ fn invalid_symlinks(invalid_symlinks: InvalidSymlinksArgs) {
|
|||
|
||||
fn broken_files(broken_files: BrokenFilesArgs) {
|
||||
let BrokenFilesArgs {
|
||||
thread_number,
|
||||
directories,
|
||||
excluded_directories,
|
||||
excluded_items,
|
||||
|
@ -416,6 +439,8 @@ fn broken_files(broken_files: BrokenFilesArgs) {
|
|||
exclude_other_filesystems,
|
||||
} = broken_files;
|
||||
|
||||
set_number_of_threads(thread_number.thread_number);
|
||||
|
||||
let mut br = BrokenFiles::new();
|
||||
|
||||
br.set_included_directory(directories.directories);
|
||||
|
@ -446,6 +471,7 @@ fn broken_files(broken_files: BrokenFilesArgs) {
|
|||
|
||||
fn similar_videos(similar_videos: SimilarVideosArgs) {
|
||||
let SimilarVideosArgs {
|
||||
thread_number,
|
||||
directories,
|
||||
excluded_directories,
|
||||
excluded_items,
|
||||
|
@ -459,6 +485,8 @@ fn similar_videos(similar_videos: SimilarVideosArgs) {
|
|||
allowed_extensions,
|
||||
} = similar_videos;
|
||||
|
||||
set_number_of_threads(thread_number.thread_number);
|
||||
|
||||
let mut vr = SimilarVideos::new();
|
||||
|
||||
vr.set_included_directory(directories.directories);
|
||||
|
@ -488,6 +516,7 @@ fn similar_videos(similar_videos: SimilarVideosArgs) {
|
|||
|
||||
fn bad_extensions(bad_extensions: BadExtensionsArgs) {
|
||||
let BadExtensionsArgs {
|
||||
thread_number,
|
||||
directories,
|
||||
excluded_directories,
|
||||
excluded_items,
|
||||
|
@ -498,6 +527,8 @@ fn bad_extensions(bad_extensions: BadExtensionsArgs) {
|
|||
allowed_extensions,
|
||||
} = bad_extensions;
|
||||
|
||||
set_number_of_threads(thread_number.thread_number);
|
||||
|
||||
let mut be = BadExtensions::new();
|
||||
|
||||
be.set_included_directory(directories.directories);
|
||||
|
|
Loading…
Reference in a new issue