Add a verbose/quiet pair of flags
This commit is contained in:
		
							parent
							
								
									782cde2663
								
							
						
					
					
						commit
						8726a1c6bf
					
				
					 4 changed files with 24 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
use std::path::PathBuf;
 | 
			
		||||
 | 
			
		||||
use clap::{command, Parser, Subcommand};
 | 
			
		||||
use clap_verbosity_flag::{InfoLevel, Verbosity};
 | 
			
		||||
use serde::Serialize;
 | 
			
		||||
 | 
			
		||||
#[derive(Parser, Serialize)]
 | 
			
		||||
| 
						 | 
				
			
			@ -27,6 +28,10 @@ pub(crate) struct Opts {
 | 
			
		|||
    #[command(subcommand)]
 | 
			
		||||
    #[serde(flatten)]
 | 
			
		||||
    pub command: Commands,
 | 
			
		||||
 | 
			
		||||
    #[command(flatten)]
 | 
			
		||||
    #[serde(skip)]
 | 
			
		||||
    pub verbose: Verbosity<InfoLevel>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[derive(Serialize, Subcommand)]
 | 
			
		||||
| 
						 | 
				
			
			@ -78,7 +83,7 @@ pub(crate) enum PeopleCommands {
 | 
			
		|||
    /// Synchronises date of births from a vcard file
 | 
			
		||||
    #[serde(rename = "sync_date_of_births")]
 | 
			
		||||
    SyncDateOfBirths {
 | 
			
		||||
        #[arg(short, long)]
 | 
			
		||||
        #[arg(long)]
 | 
			
		||||
        #[serde(skip_serializing_if = "::std::option::Option::is_none")]
 | 
			
		||||
        vcard: Option<PathBuf>,
 | 
			
		||||
    },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -39,7 +39,12 @@ mod utils;
 | 
			
		|||
#[tokio::main]
 | 
			
		||||
async fn main() -> Result<()> {
 | 
			
		||||
    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();
 | 
			
		||||
    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");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    let args = args::Opts::parse();
 | 
			
		||||
 | 
			
		||||
    let conf: Config = conf_extractor
 | 
			
		||||
        .merge(FileAdapter::wrap(Env::prefixed("IMMICH_TOOLS_")))
 | 
			
		||||
        .merge(Serialized::defaults(&args))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue