Skip to content

Commit

Permalink
ssh remoting: Expand tilde on host side (zed-industries#18333)
Browse files Browse the repository at this point in the history
  • Loading branch information
mrnugget authored Sep 25, 2024
1 parent 4e2ae06 commit ccc871c
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 3 deletions.
5 changes: 3 additions & 2 deletions crates/project/src/worktree_store.rs
Original file line number Diff line number Diff line change
Expand Up @@ -221,10 +221,11 @@ impl WorktreeStore {
) -> Task<Result<Model<Worktree>, Arc<anyhow::Error>>> {
let mut abs_path = abs_path.as_ref().to_string_lossy().to_string();
// If we start with `/~` that means the ssh path was something like `ssh://user@host/~/home-dir-folder/`
// in which case want to strip the leading the `/` and expand the tilde.
// in which case want to strip the leading the `/`.
// On the host-side, the `~` will get expanded.
// That's what git does too: https://github.com/libgit2/libgit2/issues/3345#issuecomment-127050850
if abs_path.starts_with("/~") {
abs_path = shellexpand::tilde(&abs_path[1..]).to_string();
abs_path = abs_path[1..].to_string();
}
let root_name = PathBuf::from(abs_path.clone())
.file_name()
Expand Down
9 changes: 8 additions & 1 deletion crates/recent_projects/src/ssh_connections.rs
Original file line number Diff line number Diff line change
Expand Up @@ -327,7 +327,14 @@ impl SshClientDelegate {
cx,
)
.await
.map_err(|e| anyhow::anyhow!("failed to download remote server binary: {}", e))?;
.map_err(|e| {
anyhow::anyhow!(
"failed to download remote server binary (os: {}, arch: {}): {}",
platform.os,
platform.arch,
e
)
})?;

Ok((binary_path, version))
}
Expand Down

0 comments on commit ccc871c

Please sign in to comment.