Change summary
crates/client/src/client.rs | 2 +-
crates/zed/src/main.rs | 10 ++++++++--
2 files changed, 9 insertions(+), 3 deletions(-)
Detailed changes
@@ -45,7 +45,7 @@ pub use user::*;
lazy_static! {
static ref ZED_SERVER_URL: String =
std::env::var("ZED_SERVER_URL").unwrap_or("https://zed.dev".to_string());
- static ref IMPERSONATE_LOGIN: Option<String> = std::env::var("ZED_IMPERSONATE")
+ pub static ref IMPERSONATE_LOGIN: Option<String> = std::env::var("ZED_IMPERSONATE")
.ok()
.and_then(|s| if s.is_empty() { None } else { Some(s) });
}
@@ -81,8 +81,14 @@ fn main() {
cx.spawn({
let client = client.clone();
|cx| async move {
- if !stdout_is_a_pty() && client.has_keychain_credentials(&cx) {
- client.authenticate_and_connect(true, &cx).await?;
+ if stdout_is_a_pty() {
+ if client::IMPERSONATE_LOGIN.is_some() {
+ client.authenticate_and_connect(false, &cx).await?;
+ }
+ } else {
+ if client.has_keychain_credentials(&cx) {
+ client.authenticate_and_connect(true, &cx).await?;
+ }
}
Ok::<_, anyhow::Error>(())
}