summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2025-11-17 19:15:03 +0800
committer魏曹先生 <1992414357@qq.com>2025-11-17 19:15:03 +0800
commite78eac0511bebe72e471346bb45d8b7436a52799 (patch)
tree762e6e4f8a35d985b7c0b3719c526beb5c82d7d6 /src
parent0b2a864d85015e2f69f83d8be3d6a4e2ab10629f (diff)
Add error handling for sheet use command
Diffstat (limited to 'src')
-rw-r--r--src/bin/jv.rs29
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());
+ }
+ },
}
}