diff options
| author | 魏曹先生 <1992414357@qq.com> | 2025-10-14 17:19:24 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2025-10-14 17:19:24 +0800 |
| commit | 293d53c0e3f2f4191bd1ae209efda820333afabd (patch) | |
| tree | 6535f91b87690400a501435a598d1044847e81dc | |
| parent | 0cd19e64d4d255e45233255478ca3a0bd5c439ae (diff) | |
style: fix clippy warnings and improve code quality
- Replace redundant pattern matching with is_err() method
- Remove unnecessary braces in unwrap_or_else closures
- Improve code formatting and consistency
| -rw-r--r-- | crates/cli_publisher/src/main.rs | 5 | ||||
| -rw-r--r-- | src/bin/jvv.rs | 24 | ||||
| -rw-r--r-- | 构想.md | 73 |
3 files changed, 89 insertions, 13 deletions
diff --git a/crates/cli_publisher/src/main.rs b/crates/cli_publisher/src/main.rs index 7e6555a..edc7e9c 100644 --- a/crates/cli_publisher/src/main.rs +++ b/crates/cli_publisher/src/main.rs @@ -38,8 +38,8 @@ fn main() -> Result<(), Box<dyn std::error::Error>> { continue; } - if let Some(file_name) = path.file_name().and_then(|n| n.to_str()) { - if publish_binaries.contains(&file_name.to_string()) { + if let Some(file_name) = path.file_name().and_then(|n| n.to_str()) + && publish_binaries.contains(&file_name.to_string()) { let parent_dir_name = path .parent() .and_then(|p| p.file_name()) @@ -62,7 +62,6 @@ fn main() -> Result<(), Box<dyn std::error::Error>> { std::fs::copy(&path, &dest_path)?; copied_files += 1; } - } } } diff --git a/src/bin/jvv.rs b/src/bin/jvv.rs index 828a093..12ea18f 100644 --- a/src/bin/jvv.rs +++ b/src/bin/jvv.rs @@ -179,7 +179,7 @@ async fn main() { JustEnoughVcsCommand::Member(member_manage) => { let vault_cfg = VaultConfig::read() .await - .expect(t!("jvv.fail.no_vault_here").trim()); + .unwrap_or_else(|_| panic!("{}", t!("jvv.fail.no_vault_here").trim().to_string())); let vault = match Vault::init_current_dir(vault_cfg) { Some(vault) => vault, @@ -251,7 +251,7 @@ async fn jvv_here(_args: HereArgs) { let vault_cfg = VaultConfig::read() .await - .expect(t!("jvv.fail.here.cfg_not_found").trim()); + .unwrap_or_else(|_| panic!("{}", t!("jvv.fail.here.cfg_not_found").trim().to_string())); // Get vault name let vault_name = vault_cfg.vault_name(); @@ -261,8 +261,9 @@ async fn jvv_here(_args: HereArgs) { } async fn jvv_init(_args: InitVaultArgs) { - let current_dir = std::env::current_dir().expect(t!("jvv.fail.std.current_dir").trim()); - if !current_dir.read_dir().unwrap().next().is_none() { + let current_dir = std::env::current_dir() + .unwrap_or_else(|_| panic!("{}", t!("jvv.fail.std.current_dir").trim().to_string())); + if current_dir.read_dir().unwrap().next().is_some() { eprintln!("{}", t!("jvv.fail.init.not_empty")); return; } @@ -270,7 +271,7 @@ async fn jvv_init(_args: InitVaultArgs) { // Setup vault let vault_name = current_dir .file_name() - .expect(t!("jvv.fail.std.current_dir_name").trim()) + .unwrap_or_else(|| panic!("{}", t!("jvv.fail.std.current_dir_name").trim().to_string())) .to_string_lossy() .to_string(); let vault_name = pascal_case!(vault_name); @@ -303,11 +304,12 @@ async fn jvv_init(_args: InitVaultArgs) { } async fn jvv_create(args: CreateVaultArgs) { - let current_dir = std::env::current_dir().expect(t!("jvv.fail.std.current_dir").trim()); + let current_dir = std::env::current_dir() + .unwrap_or_else(|_| panic!("{}", t!("jvv.fail.std.current_dir").trim().to_string())); let target_dir = current_dir.join(args.vault_name.clone()); // Create directory - if let Err(_) = fs::create_dir_all(&target_dir).await { + if fs::create_dir_all(&target_dir).await.is_err() { eprintln!( "{}", t!( @@ -318,7 +320,7 @@ async fn jvv_create(args: CreateVaultArgs) { return; } - if !target_dir.read_dir().unwrap().next().is_none() { + if target_dir.read_dir().unwrap().next().is_some() { eprintln!("{}", t!("jvv.fail.create.not_empty")); return; } @@ -331,7 +333,7 @@ async fn jvv_create(args: CreateVaultArgs) { } // Enter target_dir - if let Err(_) = set_current_dir(&target_dir) { + if set_current_dir(&target_dir).is_err() { eprintln!( "{}", t!( @@ -391,7 +393,9 @@ async fn jvv_member_remove(vault: Vault, args: MemberRemoveArgs) { async fn jvv_member_list(vault: Vault, _args: MemberListArgs) { // Get id list - let ids = vault.member_ids().expect(t!("jvv.fail.member.list").trim()); + let ids = vault + .member_ids() + .unwrap_or_else(|_| panic!("{}", t!("jvv.fail.member.list").trim().to_string())); // Print header println!("{}", md(t!("jvv.success.member.list.header"))); @@ -0,0 +1,73 @@ +# 设置本地工作区(制定在该工作区操作的账户) +jv init --user catilgrass +jv create "MyLocalWorkspace" --user catilgrass + +# 设置库 (指定在该工作区使用的表) +jv vault vault.catilgrass.cn --sheet unity +jv vault test # 检查可连接性和自身权限 + +# 拿取当前表的文件到本地 +jv fetch + +# 查看当前目录下的信息(所在库,使用账户,该目录的文件信息) +jv here +# 同理,可以查看树状 +jv here --tree + +# 跟踪未跟踪的文件 +jv track * # 此操作会询问是否上传文件 +jv track * --confirm + +# 拿到文件的编辑权 +jv hold "本地表中的名称" # 当文件和上游不同步时,该操作会禁止你拿取,但是可以使用 --force 强制拿取(强烈不推荐,只有一种情况是还算可以容忍的,就是 “忘了拿取但是已经编辑,不过这期间没人修改”) +jv throw "本地表中的名称" # 当文件被修改,却没有被保存时,该操作会禁止你丢弃,可以使用 --force 强制丢弃,同时可以使用 --restore 还原回编辑前的版本 + +# 再次查看本地文件 +jv here --tracked + +# 当本地文件修改、移动、重命名后,记得自动跟踪下(以防断裂) +jv track --auto +# 或者,启动跟踪器 +jv-tracker --daemon + +# 修改完成后 +jv save # 保存至上游 + +# 再次检查状态 +jv here + +# 拿取 +jv fetch + +# 如果想发送文件给别的表 (仅允许发送表中记录的) +jv out Texture.png art # 可用于互换文件、申请建立参照 + +# 查看传入的文件 +jv in + +# 接受、拒绝传入的文件 +jv in "发送者给出的参照名称" "存入的地址(不写默认为参照)" --accept # 不标记accept/deny则是提示存储后的结构 +jv ferch # 拿到刚刚传入的文件 + +# 从其他表拿到文件 +jv in art@Art/Character.png "存入地址,默认为该文件在其他表的名字" # 此格式不需要显式的 接受、拒绝 标记 +# 直接从虚拟文件id拿到文件 +jv in vf_xxxxx "存入地址,默认为在参照表的名字(参照表不存在则直接使用 id)" # 此格式不需要显式的 接受、拒绝 标记 + + +# 切换本地表 +jv here --tree --modified # 先确认是否有没保存的文件 +jv switch "其他表" # 若该表不是自己的,则无法切换 +jv switch "其他表" --force --confirm # 可以使用 force 强行切换至该表,但是你无法修改和操作其中任何东西,只读 + +# 切换访问账户 +jv here # 查看当前账户 +jv account "peter" # 切换账户 (和强制switch一样,若权限对不上则只读) +jv user account # 查看所有本地账户(会显示是否存放密钥) +jv user account register "账户名称" # 在本地增加账户 +jv user account remove "账户名称" # 在本地移除账户 +jv user account default "账户名称" # 设置默认账户名称,在jv init 时则不需要显式制定 + + +注意!所有的表操作都是联网处理的,在没有网的情况下将无法进行任何表操作,唯一能做的只有编辑已经拿到锁的文件 + |
