summaryrefslogtreecommitdiff
path: root/data/src/current.rs
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-01-12 06:01:52 +0800
committer魏曹先生 <1992414357@qq.com>2026-01-12 06:01:52 +0800
commitbac88ab54b28825a17f808def90209517f484355 (patch)
treee002bc0f482e1e9af90abe47e9b1e9b59d33f4d8 /data/src/current.rs
parente3f4b8188515eeec149eec0405b51e1b57f6e7bb (diff)
Rename modules for better clarity and organization
Diffstat (limited to 'data/src/current.rs')
-rw-r--r--data/src/current.rs84
1 files changed, 0 insertions, 84 deletions
diff --git a/data/src/current.rs b/data/src/current.rs
deleted file mode 100644
index 209c0cc..0000000
--- a/data/src/current.rs
+++ /dev/null
@@ -1,84 +0,0 @@
-use crate::constants::*;
-use std::io::{self, Error};
-use std::{env::set_current_dir, path::PathBuf};
-
-/// Find the nearest vault or local workspace and correct the `current_dir` to it
-pub fn correct_current_dir() -> Result<(), io::Error> {
- if let Some(local_workspace) = current_local_path() {
- set_current_dir(local_workspace)?;
- return Ok(());
- }
- if let Some(vault) = current_vault_path() {
- set_current_dir(vault)?;
- return Ok(());
- }
- Err(Error::new(
- io::ErrorKind::NotFound,
- "Could not find any vault or local workspace!",
- ))
-}
-
-/// Get the nearest Vault directory from `current_dir`
-pub fn current_vault_path() -> Option<PathBuf> {
- let current_dir = std::env::current_dir().ok()?;
- find_vault_path(current_dir)
-}
-
-/// Get the nearest local workspace from `current_dir`
-pub fn current_local_path() -> Option<PathBuf> {
- let current_dir = std::env::current_dir().ok()?;
- find_local_path(current_dir)
-}
-
-/// Get the nearest Vault directory from the specified path
-pub fn find_vault_path(path: impl Into<PathBuf>) -> Option<PathBuf> {
- let mut current_path = path.into();
- let vault_file = SERVER_FILE_VAULT;
-
- loop {
- let vault_toml_path = current_path.join(vault_file);
- if vault_toml_path.exists() {
- return Some(current_path);
- }
-
- if let Some(parent) = current_path.parent() {
- current_path = parent.to_path_buf();
- } else {
- break;
- }
- }
-
- None
-}
-
-/// Get the nearest local workspace from the specified path
-pub fn find_local_path(path: impl Into<PathBuf>) -> Option<PathBuf> {
- let mut current_path = path.into();
- let workspace_dir = CLIENT_PATH_WORKSPACE_ROOT;
-
- loop {
- let jvc_path = current_path.join(workspace_dir);
- if jvc_path.exists() {
- return Some(current_path);
- }
-
- if let Some(parent) = current_path.parent() {
- current_path = parent.to_path_buf();
- } else {
- break;
- }
- }
-
- None
-}
-
-/// Get the system's document directory and join with the appropriate application name
-pub fn current_cfg_dir() -> Option<PathBuf> {
- dirs::config_local_dir().map(|path| {
- if cfg!(target_os = "linux") {
- path.join("jvcs")
- } else {
- path.join("JustEnoughVCS")
- }
- })
-}