Add a verbose/quiet pair of flags #23
					 4 changed files with 24 additions and 4 deletions
				
			
		
							
								
								
									
										11
									
								
								Cargo.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										11
									
								
								Cargo.lock
									
										
									
										generated
									
									
									
								
							| 
						 | 
					@ -510,6 +510,16 @@ dependencies = [
 | 
				
			||||||
 "clap_derive",
 | 
					 "clap_derive",
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "clap-verbosity-flag"
 | 
				
			||||||
 | 
					version = "2.2.2"
 | 
				
			||||||
 | 
					source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
				
			||||||
 | 
					checksum = "e099138e1807662ff75e2cebe4ae2287add879245574489f9b1588eb5e5564ed"
 | 
				
			||||||
 | 
					dependencies = [
 | 
				
			||||||
 | 
					 "clap",
 | 
				
			||||||
 | 
					 "log",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[package]]
 | 
					[[package]]
 | 
				
			||||||
name = "clap_builder"
 | 
					name = "clap_builder"
 | 
				
			||||||
version = "4.5.20"
 | 
					version = "4.5.20"
 | 
				
			||||||
| 
						 | 
					@ -1294,6 +1304,7 @@ dependencies = [
 | 
				
			||||||
 "bon",
 | 
					 "bon",
 | 
				
			||||||
 "chrono",
 | 
					 "chrono",
 | 
				
			||||||
 "clap",
 | 
					 "clap",
 | 
				
			||||||
 | 
					 "clap-verbosity-flag",
 | 
				
			||||||
 "color-eyre",
 | 
					 "color-eyre",
 | 
				
			||||||
 "dialoguer",
 | 
					 "dialoguer",
 | 
				
			||||||
 "directories",
 | 
					 "directories",
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,6 +15,7 @@ ignored = ["progenitor-client", "regress"]
 | 
				
			||||||
bon = "2.3.0"
 | 
					bon = "2.3.0"
 | 
				
			||||||
chrono = { version = "0.4.38", features = ["serde"] }
 | 
					chrono = { version = "0.4.38", features = ["serde"] }
 | 
				
			||||||
clap = { version = "4.5.20", features = ["derive"] }
 | 
					clap = { version = "4.5.20", features = ["derive"] }
 | 
				
			||||||
 | 
					clap-verbosity-flag = "2.2.2"
 | 
				
			||||||
color-eyre = "0.6.3"
 | 
					color-eyre = "0.6.3"
 | 
				
			||||||
dialoguer = "0.11.0"
 | 
					dialoguer = "0.11.0"
 | 
				
			||||||
directories = "5.0.1"
 | 
					directories = "5.0.1"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,7 @@
 | 
				
			||||||
use std::path::PathBuf;
 | 
					use std::path::PathBuf;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use clap::{command, Parser, Subcommand};
 | 
					use clap::{command, Parser, Subcommand};
 | 
				
			||||||
 | 
					use clap_verbosity_flag::{InfoLevel, Verbosity};
 | 
				
			||||||
use serde::Serialize;
 | 
					use serde::Serialize;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#[derive(Parser, Serialize)]
 | 
					#[derive(Parser, Serialize)]
 | 
				
			||||||
| 
						 | 
					@ -27,6 +28,10 @@ pub(crate) struct Opts {
 | 
				
			||||||
    #[command(subcommand)]
 | 
					    #[command(subcommand)]
 | 
				
			||||||
    #[serde(flatten)]
 | 
					    #[serde(flatten)]
 | 
				
			||||||
    pub command: Commands,
 | 
					    pub command: Commands,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    #[command(flatten)]
 | 
				
			||||||
 | 
					    #[serde(skip)]
 | 
				
			||||||
 | 
					    pub verbose: Verbosity<InfoLevel>,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#[derive(Serialize, Subcommand)]
 | 
					#[derive(Serialize, Subcommand)]
 | 
				
			||||||
| 
						 | 
					@ -78,7 +83,7 @@ pub(crate) enum PeopleCommands {
 | 
				
			||||||
    /// Synchronises date of births from a vcard file
 | 
					    /// Synchronises date of births from a vcard file
 | 
				
			||||||
    #[serde(rename = "sync_date_of_births")]
 | 
					    #[serde(rename = "sync_date_of_births")]
 | 
				
			||||||
    SyncDateOfBirths {
 | 
					    SyncDateOfBirths {
 | 
				
			||||||
        #[arg(short, long)]
 | 
					        #[arg(long)]
 | 
				
			||||||
        #[serde(skip_serializing_if = "::std::option::Option::is_none")]
 | 
					        #[serde(skip_serializing_if = "::std::option::Option::is_none")]
 | 
				
			||||||
        vcard: Option<PathBuf>,
 | 
					        vcard: Option<PathBuf>,
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -39,7 +39,12 @@ mod utils;
 | 
				
			||||||
#[tokio::main]
 | 
					#[tokio::main]
 | 
				
			||||||
async fn main() -> Result<()> {
 | 
					async fn main() -> Result<()> {
 | 
				
			||||||
    color_eyre::install()?;
 | 
					    color_eyre::install()?;
 | 
				
			||||||
    pretty_env_logger::init();
 | 
					
 | 
				
			||||||
 | 
					    let args = args::Opts::parse();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    pretty_env_logger::formatted_timed_builder()
 | 
				
			||||||
 | 
					        .filter_level(args.verbose.log_level_filter())
 | 
				
			||||||
 | 
					        .init();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let mut conf_extractor = Figment::new();
 | 
					    let mut conf_extractor = Figment::new();
 | 
				
			||||||
    if let Some(project_dirs) = ProjectDirs::from("fr", "enoent", "Immich Tools") {
 | 
					    if let Some(project_dirs) = ProjectDirs::from("fr", "enoent", "Immich Tools") {
 | 
				
			||||||
| 
						 | 
					@ -53,8 +58,6 @@ async fn main() -> Result<()> {
 | 
				
			||||||
        warn!("Unable to determine configuration file path");
 | 
					        warn!("Unable to determine configuration file path");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let args = args::Opts::parse();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    let conf: Config = conf_extractor
 | 
					    let conf: Config = conf_extractor
 | 
				
			||||||
        .merge(FileAdapter::wrap(Env::prefixed("IMMICH_TOOLS_")))
 | 
					        .merge(FileAdapter::wrap(Env::prefixed("IMMICH_TOOLS_")))
 | 
				
			||||||
        .merge(Serialized::defaults(&args))
 | 
					        .merge(Serialized::defaults(&args))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue