diff options
| author | 魏曹先生 <1992414357@qq.com> | 2025-12-01 22:21:57 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2025-12-01 22:21:57 +0800 |
| commit | 899e109f6ef3a32c25f75aec5690bb800c3466ac (patch) | |
| tree | 98eb5bae5a40d41f891ffa67f92561c91df14b60 /src/bin/jvv.rs | |
| parent | f28a6f1f3460252a7e7fe4b8e4a1ef150e587f38 (diff) | |
Add --show-log flag and refactor vault setup
- Add `--show-log` flag to override profile logger setting - Add
validation for conflicting `--no-log` and `--show-log` flags - Refactor
`Vault::setup_vault` to accept vault name parameter - Update logger
initialization to respect configured log level - Add new dependencies:
`whoami`, `redox_syscall`, `wasite`, `web-sys` - Add error message for
conflicting log flags in locales
Diffstat (limited to 'src/bin/jvv.rs')
| -rw-r--r-- | src/bin/jvv.rs | 76 |
1 files changed, 29 insertions, 47 deletions
diff --git a/src/bin/jvv.rs b/src/bin/jvv.rs index db72a53..b9a1d74 100644 --- a/src/bin/jvv.rs +++ b/src/bin/jvv.rs @@ -174,10 +174,14 @@ struct ListenArgs { #[arg(short, long)] help: bool, - /// Disable logging + /// Disable logging (Override profile) #[arg(short, long)] no_log: bool, + /// Show logging (Override profile) + #[arg(short, long)] + show_log: bool, + /// Custom port #[arg(short, long)] port: Option<u16>, @@ -465,22 +469,7 @@ async fn jvv_init(_args: InitVaultArgs) { }; let vault_name = pascal_case!(vault_name); - if let Err(err) = Vault::setup_vault(current_dir.clone()).await { - eprintln!("{}", t!("jvv.fail.jvcs", err = err.to_string())); - return; - } - - // Read vault cfg - let mut vault_cfg = match VaultConfig::read().await { - Ok(cfg) => cfg, - Err(err) => { - eprintln!("{}", t!("jvv.fail.jvcs", err = err.to_string())); - return; - } - }; - - vault_cfg.change_name(vault_name); - if let Err(err) = VaultConfig::write(&vault_cfg).await { + if let Err(err) = Vault::setup_vault(current_dir.clone(), vault_name).await { eprintln!("{}", t!("jvv.fail.jvcs", err = err.to_string())); return; } @@ -523,34 +512,7 @@ async fn jvv_create(args: CreateVaultArgs) { // Setup vault let vault_name = pascal_case!(args.vault_name); - if let Err(err) = Vault::setup_vault(target_dir.clone()).await { - eprintln!("{}", t!("jvv.fail.jvcs", err = err.to_string())); - return; - } - - // Enter target_dir - if set_current_dir(&target_dir).is_err() { - eprintln!( - "{}", - t!( - "jvv.fail.std.set_current_dir", - dir = target_dir.to_string_lossy() - ) - ); - return; - } - - // Read vault cfg - let mut vault_cfg = match VaultConfig::read().await { - Ok(cfg) => cfg, - Err(err) => { - eprintln!("{}", t!("jvv.fail.jvcs", err = err.to_string())); - return; - } - }; - - vault_cfg.change_name(vault_name); - if let Err(err) = VaultConfig::write(&vault_cfg).await { + if let Err(err) = Vault::setup_vault(target_dir.clone(), vault_name).await { eprintln!("{}", t!("jvv.fail.jvcs", err = err.to_string())); return; } @@ -652,7 +614,24 @@ async fn jvv_service_listen(args: ListenArgs) { return; }; - if !args.no_log { + let Ok(vault_cfg) = VaultConfig::read().await else { + eprintln!("{}", t!("jvv.fail.here.cfg_not_found").trim()); + return; + }; + + let show_logger = if args.no_log && !args.show_log { + false + } else if !args.no_log && args.show_log { + true + } else if !args.no_log && !args.show_log { + // Read profile + vault_cfg.server_config().is_logger_enabled() + } else { + eprintln!("{}", md(t!("jvv.fail.service.wtf_show_log_and_no_log"))); + return; + }; + + if show_logger { let logs_dir = current_vault.join("logs"); if let Err(_) = fs::create_dir_all(&logs_dir).await { eprintln!( @@ -666,7 +645,10 @@ async fn jvv_service_listen(args: ListenArgs) { } let now = chrono::Local::now(); let log_filename = format!("log_{}.txt", now.format("%Y.%m.%d-%H:%M:%S")); - build_env_logger(logs_dir.join(log_filename)); + build_env_logger( + logs_dir.join(log_filename), + vault_cfg.server_config().logger_level(), + ); info!( "{}", t!( |
