diff --git a/xtask/src/install.rs b/xtask/src/install.rs index 3df021acc3..1d13b26da9 100644 --- a/xtask/src/install.rs +++ b/xtask/src/install.rs @@ -4,7 +4,10 @@ use std::{env, path::PathBuf, str}; use anyhow::{bail, format_err, Context, Result}; -use crate::not_bash::{pushd, run}; +use crate::{ + not_bash::{pushd, run}, + project_root, +}; // Latest stable, feel free to send a PR if this lags behind. const REQUIRED_RUST_VERSION: u32 = 41; @@ -24,6 +27,7 @@ pub struct ServerOpt { impl InstallCmd { pub fn run(self) -> Result<()> { + let _dir = pushd(project_root()); let both = self.server.is_some() && self.client.is_some(); if cfg!(target_os = "macos") { fix_path_for_mac().context("Fix path for mac")? diff --git a/xtask/src/not_bash.rs b/xtask/src/not_bash.rs index d5577cce92..c49ad671d5 100644 --- a/xtask/src/not_bash.rs +++ b/xtask/src/not_bash.rs @@ -130,6 +130,7 @@ impl Env { } fn pushd(&mut self, dir: PathBuf) { + let dir = self.cwd().join(dir); self.pushd_stack.push(dir) } fn popd(&mut self) {