summaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2025-12-08 20:11:22 +0800
committer魏曹先生 <1992414357@qq.com>2025-12-08 20:11:22 +0800
commit37e991b7eb1f57090b98ebc02a7fad6a4971e876 (patch)
tree53e4c1dca9de146dc1806c654601667e4dced0d1 /src/utils
parentf87dc291140ccb63919ab20f56c4f86f6df38dde (diff)
Add jvii binary and set default text editor
- Add jvii as a new binary target in Cargo configuration - Set JV_TEXT_EDITOR environment variable to "nano" in CLI scripts - Implement jvii binary with version command support - Add get_default_editor() utility that checks JV_TEXT_EDITOR, EDITOR, then defaults to "jvii"
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/env.rs20
-rw-r--r--src/utils/input.rs4
2 files changed, 23 insertions, 1 deletions
diff --git a/src/utils/env.rs b/src/utils/env.rs
index 5a37365..c96760b 100644
--- a/src/utils/env.rs
+++ b/src/utils/env.rs
@@ -47,3 +47,23 @@ pub fn enable_auto_update() -> bool {
}
false
}
+
+/// Gets the default text editor based on environment variables.
+///
+/// The function checks the JV_TEXT_EDITOR and EDITOR environment variables
+/// and returns their values if they are set. If neither variable is set,
+/// it returns "jvii" as the default editor.
+///
+/// # Returns
+/// A String containing the default text editor
+pub async fn get_default_editor() -> String {
+ if let Ok(editor) = std::env::var("JV_TEXT_EDITOR") {
+ return editor;
+ }
+
+ if let Ok(editor) = std::env::var("EDITOR") {
+ return editor;
+ }
+
+ "jvii".to_string()
+}
diff --git a/src/utils/input.rs b/src/utils/input.rs
index 219fe1b..1edcc5d 100644
--- a/src/utils/input.rs
+++ b/src/utils/input.rs
@@ -1,5 +1,7 @@
use tokio::{fs, process::Command};
+use crate::utils::env::get_default_editor;
+
/// Confirm the current operation
/// Waits for user input of 'y' or 'n'
pub async fn confirm_hint(text: impl Into<String>) -> bool {
@@ -69,7 +71,7 @@ pub async fn input_with_editor(
fs::write(cache_path, default_content).await?;
// Get editor from environment variable
- let editor = std::env::var("EDITOR").unwrap_or_else(|_| "vi".to_string());
+ let editor = get_default_editor().await;
// Open editor with cache file
let status = Command::new(editor).arg(cache_path).status().await?;