diff options
| author | 魏曹先生 <1992414357@qq.com> | 2025-11-17 19:15:03 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2025-11-17 19:15:03 +0800 |
| commit | e78eac0511bebe72e471346bb45d8b7436a52799 (patch) | |
| tree | 762e6e4f8a35d985b7c0b3719c526beb5c82d7d6 /src | |
| parent | 0b2a864d85015e2f69f83d8be3d6a4e2ab10629f (diff) | |
Add error handling for sheet use command
Diffstat (limited to 'src')
| -rw-r--r-- | src/bin/jv.rs | 29 |
1 files changed, 25 insertions, 4 deletions
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()); + } + }, } } |
