summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2025-10-14 17:19:24 +0800
committer魏曹先生 <1992414357@qq.com>2025-10-14 17:19:24 +0800
commit293d53c0e3f2f4191bd1ae209efda820333afabd (patch)
tree6535f91b87690400a501435a598d1044847e81dc
parent0cd19e64d4d255e45233255478ca3a0bd5c439ae (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.rs5
-rw-r--r--src/bin/jvv.rs24
-rw-r--r--构想.md73
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")));
diff --git a/构想.md b/构想.md
new file mode 100644
index 0000000..4f20785
--- /dev/null
+++ b/构想.md
@@ -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 时则不需要显式制定
+
+
+注意!所有的表操作都是联网处理的,在没有网的情况下将无法进行任何表操作,唯一能做的只有编辑已经拿到锁的文件
+