From e78eac0511bebe72e471346bb45d8b7436a52799 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Mon, 17 Nov 2025 19:15:03 +0800 Subject: Add error handling for sheet use command --- src/bin/jv.rs | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) (limited to 'src/bin') diff --git a/src/bin/jv.rs b/src/bin/jv.rs index 7507680..51f73dd 100644 --- a/src/bin/jv.rs +++ b/src/bin/jv.rs @@ -1474,16 +1474,37 @@ async fn jv_sheet_use(args: SheetUseArgs) { return; }; - match local_cfg.use_sheet(args.sheet_name).await { + match local_cfg.use_sheet(args.sheet_name.clone()).await { Ok(_) => { let Ok(_) = LocalConfig::write(&local_cfg).await else { eprintln!("{}", t!("jv.fail.write_cfg").trim().red()); return; }; } - Err(e) => { - handle_err(e.into()); - } + Err(e) => match e.kind() { + std::io::ErrorKind::AlreadyExists => {} // Already In Use + std::io::ErrorKind::NotFound => { + eprintln!( + "{}", + md(t!("jv.fail.use.sheet_not_exists", name = args.sheet_name)).red() + ); + return; + } + std::io::ErrorKind::DirectoryNotEmpty => { + eprintln!( + "{}", + md(t!( + "jv.fail.use.directory_not_empty", + name = args.sheet_name + )) + .red() + ); + return; + } + _ => { + handle_err(e.into()); + } + }, } } -- cgit