windows: Fix supermaven (#16203)
Closes #16194 This PR introduces the following changes: 1. Updated the download process to retrieve the `.exe` file, as the API response indicates that the `.exe` file should be downloaded on Windows. > API response: "https://supermaven-public.s3.amazonaws.com/sm-agent/26/windows/amd64/sm-agent.exe" 2. Modified the startup behavior of supermaven to prevent the cmd window from appearing. Release Notes: - N/A
This commit is contained in:
parent
0eb96c72e3
commit
88a12b60a9
4 changed files with 20 additions and 5 deletions
1
Cargo.lock
generated
1
Cargo.lock
generated
|
@ -10509,6 +10509,7 @@ dependencies = [
|
||||||
"theme",
|
"theme",
|
||||||
"ui",
|
"ui",
|
||||||
"util",
|
"util",
|
||||||
|
"windows 0.58.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
|
@ -31,6 +31,9 @@ text.workspace = true
|
||||||
ui.workspace = true
|
ui.workspace = true
|
||||||
util.workspace = true
|
util.workspace = true
|
||||||
|
|
||||||
|
[target.'cfg(target_os = "windows")'.dependencies]
|
||||||
|
windows.workspace = true
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
editor = { workspace = true, features = ["test-support"] }
|
editor = { workspace = true, features = ["test-support"] }
|
||||||
env_logger.workspace = true
|
env_logger.workspace = true
|
||||||
|
|
|
@ -260,14 +260,21 @@ impl SupermavenAgent {
|
||||||
client: Arc<Client>,
|
client: Arc<Client>,
|
||||||
cx: &mut ModelContext<Supermaven>,
|
cx: &mut ModelContext<Supermaven>,
|
||||||
) -> Result<Self> {
|
) -> Result<Self> {
|
||||||
let mut process = Command::new(&binary_path)
|
let mut process = Command::new(&binary_path);
|
||||||
|
process
|
||||||
.arg("stdio")
|
.arg("stdio")
|
||||||
.stdin(Stdio::piped())
|
.stdin(Stdio::piped())
|
||||||
.stdout(Stdio::piped())
|
.stdout(Stdio::piped())
|
||||||
.stderr(Stdio::piped())
|
.stderr(Stdio::piped())
|
||||||
.kill_on_drop(true)
|
.kill_on_drop(true);
|
||||||
.spawn()
|
|
||||||
.context("failed to start the binary")?;
|
#[cfg(target_os = "windows")]
|
||||||
|
{
|
||||||
|
use smol::process::windows::CommandExt;
|
||||||
|
process.creation_flags(windows::Win32::System::Threading::CREATE_NO_WINDOW.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut process = process.spawn().context("failed to start the binary")?;
|
||||||
|
|
||||||
let stdin = process
|
let stdin = process
|
||||||
.stdin
|
.stdin
|
||||||
|
|
|
@ -212,7 +212,11 @@ pub async fn latest_release(
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn version_path(version: u64) -> PathBuf {
|
pub fn version_path(version: u64) -> PathBuf {
|
||||||
supermaven_dir().join(format!("sm-agent-{}", version))
|
supermaven_dir().join(format!(
|
||||||
|
"sm-agent-{}{}",
|
||||||
|
version,
|
||||||
|
std::env::consts::EXE_SUFFIX
|
||||||
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn has_version(version_path: &Path) -> bool {
|
pub async fn has_version(version_path: &Path) -> bool {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue