summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2025-11-17 20:27:40 +0800
committer魏曹先生 <1992414357@qq.com>2025-11-17 20:27:40 +0800
commitc98afb88b998dc93eabf1740671cc80b602d22f1 (patch)
treecf77f629d986d512525a0deb3c29953e42878ddc /src
parent6efca2a94eec4847765eb7ac07b49f2ebd1c832c (diff)
Use account-specific paths for latest info files
Diffstat (limited to 'src')
-rw-r--r--src/bin/jv.rs88
1 files changed, 57 insertions, 31 deletions
diff --git a/src/bin/jv.rs b/src/bin/jv.rs
index 1ac440f..6d53eaa 100644
--- a/src/bin/jv.rs
+++ b/src/bin/jv.rs
@@ -563,35 +563,42 @@ async fn main() {
}
// Check if the workspace has a registered account (account = unknown)
- if let Some(local_cfg) = LocalConfig::read().await.ok() {
- if local_cfg.current_account() == "unknown" {
+ let Some(local_cfg) = LocalConfig::read().await.ok() else {
+ eprintln!("{}", md(t!("jv.fail.read_cfg")));
+ return;
+ };
+
+ // Account exists check
+ if local_cfg.current_account() == "unknown" {
+ println!();
+ println!("{}", t!("jv.tip.no_account_set").trim().yellow());
+ } else {
+ if dir
+ .account_ids()
+ .ok()
+ .map(|ids| !ids.contains(&local_cfg.current_account()))
+ .unwrap_or(false)
+ {
println!();
- println!("{}", t!("jv.tip.no_account_set").trim().yellow());
- } else {
- if dir
- .account_ids()
- .ok()
- .map(|ids| !ids.contains(&local_cfg.current_account()))
- .unwrap_or(false)
- {
- println!();
- println!(
- "{}",
- t!(
- "jv.tip.account_not_exist",
- account = local_cfg.current_account()
- )
- .trim()
- .yellow()
- );
- return;
- }
+ println!(
+ "{}",
+ t!(
+ "jv.tip.account_not_exist",
+ account = local_cfg.current_account()
+ )
+ .trim()
+ .yellow()
+ );
+ return;
}
}
// Outdated
- let Ok(latest_info) =
- LatestInfo::read_from(local_dir.join(CLIENT_FILE_LATEST_INFO)).await
+ let Ok(latest_info) = LatestInfo::read_from(LatestInfo::latest_info_path(
+ &local_dir,
+ &local_cfg.current_account(),
+ ))
+ .await
else {
return;
};
@@ -993,13 +1000,17 @@ async fn jv_here(_args: HereArgs) {
return;
};
- let Ok(latest_info) = LatestInfo::read_from(local_dir.join(CLIENT_FILE_LATEST_INFO)).await
- else {
+ let Ok(local_cfg) = LocalConfig::read_from(local_dir.join(CLIENT_FILE_WORKSPACE)).await else {
eprintln!("{}", md(t!("jv.fail.read_cfg")));
return;
};
- let Ok(local_cfg) = LocalConfig::read_from(local_dir.join(CLIENT_FILE_WORKSPACE)).await else {
+ let Ok(latest_info) = LatestInfo::read_from(LatestInfo::latest_info_path(
+ &local_dir,
+ &local_cfg.current_account(),
+ ))
+ .await
+ else {
eprintln!("{}", md(t!("jv.fail.read_cfg")));
return;
};
@@ -1347,21 +1358,26 @@ async fn jv_status(_args: StatusArgs) {
}
async fn jv_sheet_list(args: SheetListArgs) {
- let Some(_local_dir) = current_local_path() else {
+ let Some(local_dir) = current_local_path() else {
if !args.raw {
eprintln!("{}", t!("jv.fail.workspace_not_found").trim());
}
return;
};
- let Ok(latest_info) = LatestInfo::read().await else {
+ let Ok(local_cfg) = LocalConfig::read().await else {
if !args.raw {
eprintln!("{}", md(t!("jv.fail.read_cfg")));
}
return;
};
- let Ok(local_cfg) = LocalConfig::read().await else {
+ let Ok(latest_info) = LatestInfo::read_from(LatestInfo::latest_info_path(
+ &local_dir,
+ &local_cfg.current_account(),
+ ))
+ .await
+ else {
if !args.raw {
eprintln!("{}", md(t!("jv.fail.read_cfg")));
}
@@ -1546,7 +1562,17 @@ async fn jv_sheet_make(args: SheetMakeArgs) {
None => return,
};
- let latest_info = match LatestInfo::read().await {
+ let Some(local_dir) = current_local_path() else {
+ eprintln!("{}", t!("jv.fail.workspace_not_found").trim());
+ return;
+ };
+
+ let latest_info = match LatestInfo::read_from(LatestInfo::latest_info_path(
+ &local_dir,
+ &local_config.current_account(),
+ ))
+ .await
+ {
Ok(info) => info,
Err(_) => {
eprintln!("{}", t!("jv.fail.read_cfg"));