Merge pull request #5530 from shmutalov/feat/old-mac-support
feat: old mac support
This commit is contained in:
commit
80707c42e8
@ -10,7 +10,11 @@ use tokio::{
|
|||||||
time::{sleep, timeout},
|
time::{sleep, timeout},
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::{cmd::get_jan_data_folder_path, state::AppState};
|
use super::{
|
||||||
|
cmd::get_jan_data_folder_path,
|
||||||
|
state::AppState,
|
||||||
|
utils::can_override_npx,
|
||||||
|
};
|
||||||
|
|
||||||
const DEFAULT_MCP_CONFIG: &str = r#"{
|
const DEFAULT_MCP_CONFIG: &str = r#"{
|
||||||
"mcpServers": {
|
"mcpServers": {
|
||||||
@ -512,8 +516,8 @@ async fn schedule_mcp_start_task<R: Runtime>(
|
|||||||
.ok_or_else(|| format!("Failed to extract command args from config for {name}"))?;
|
.ok_or_else(|| format!("Failed to extract command args from config for {name}"))?;
|
||||||
|
|
||||||
let mut cmd = Command::new(command.clone());
|
let mut cmd = Command::new(command.clone());
|
||||||
|
|
||||||
if command == "npx" {
|
if command == "npx" && can_override_npx() {
|
||||||
let mut cache_dir = app_path.clone();
|
let mut cache_dir = app_path.clone();
|
||||||
cache_dir.push(".npx");
|
cache_dir.push(".npx");
|
||||||
let bun_x_path = format!("{}/bun", bin_path.display());
|
let bun_x_path = format!("{}/bun", bin_path.display());
|
||||||
|
|||||||
@ -103,6 +103,21 @@ pub fn normalize_path(path: &Path) -> PathBuf {
|
|||||||
ret
|
ret
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn can_override_npx() -> bool {
|
||||||
|
// we need to check the CPU for the AVX2 instruction support if we are running under the MacOS
|
||||||
|
// with Intel CPU. We can override `npx` command with `bun` only if CPU is
|
||||||
|
// supporting AVX2, otherwise we need to use default `npx` binary
|
||||||
|
#[cfg(all(target_os = "macos", any(target_arch = "x86", target_arch = "x86_64")))]
|
||||||
|
{
|
||||||
|
if !is_x86_feature_detected!("avx2") {
|
||||||
|
log::warn!("Your CPU doesn't support AVX2 instruction, default npx binary will be used");
|
||||||
|
return false; // we cannot override npx with bun binary
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
true // by default, we can override npx with bun binary
|
||||||
|
}
|
||||||
|
|
||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
pub fn write_yaml(
|
pub fn write_yaml(
|
||||||
app: tauri::AppHandle,
|
app: tauri::AppHandle,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user