1
0
Fork 0
mirror of synced 2024-05-17 19:03:08 +12:00

Allow setting thread number in CLI

This commit is contained in:
Rafał Mikrut 2023-05-09 18:59:55 +02:00
parent 4b6cf4bc9d
commit 1ee54c899f
2 changed files with 62 additions and 3 deletions

View file

@ -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 {

View file

@ -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);