mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-02 14:51:48 +00:00
tweak installation process
This commit is contained in:
parent
630d212525
commit
1e16ac0315
3 changed files with 32 additions and 21 deletions
|
@ -79,13 +79,13 @@ pub fn project_root() -> PathBuf {
|
|||
Path::new(&env!("CARGO_MANIFEST_DIR")).ancestors().nth(2).unwrap().to_path_buf()
|
||||
}
|
||||
|
||||
pub struct Cmd {
|
||||
pub unix: &'static str,
|
||||
pub windows: &'static str,
|
||||
pub work_dir: &'static str,
|
||||
pub struct Cmd<'a> {
|
||||
pub unix: &'a str,
|
||||
pub windows: &'a str,
|
||||
pub work_dir: &'a str,
|
||||
}
|
||||
|
||||
impl Cmd {
|
||||
impl Cmd<'_> {
|
||||
pub fn run(self) -> Result<()> {
|
||||
if cfg!(windows) {
|
||||
run(self.windows, self.work_dir)
|
||||
|
|
|
@ -167,27 +167,34 @@ fn install_client(ClientOpt::VsCode: ClientOpt) -> Result<()> {
|
|||
}
|
||||
.run()?;
|
||||
|
||||
let code_in_path = Cmd {
|
||||
unix: r"code --version",
|
||||
windows: r"cmd.exe /c code.cmd --version",
|
||||
work_dir: "./editors/code",
|
||||
}
|
||||
.run()
|
||||
.is_ok();
|
||||
if !code_in_path {
|
||||
Err("Can't execute `code --version`. Perhaps it is not in $PATH?")?;
|
||||
}
|
||||
let code_binary = ["code", "code-insiders"].iter().find(|bin| {
|
||||
Cmd {
|
||||
unix: &format!("{} --version", bin),
|
||||
windows: &format!("cmd.exe /c {}.cmd --version", bin),
|
||||
work_dir: "./editors/code",
|
||||
}
|
||||
.run()
|
||||
.is_ok()
|
||||
});
|
||||
|
||||
let code_binary = match code_binary {
|
||||
Some(it) => it,
|
||||
None => Err("Can't execute `code --version`. Perhaps it is not in $PATH?")?,
|
||||
};
|
||||
|
||||
Cmd {
|
||||
unix: r"code --install-extension ./ra-lsp-0.0.1.vsix --force",
|
||||
windows: r"cmd.exe /c code.cmd --install-extension ./ra-lsp-0.0.1.vsix --force",
|
||||
unix: &format!(r"{} --install-extension ./ra-lsp-0.0.1.vsix --force", code_binary),
|
||||
windows: &format!(
|
||||
r"cmd.exe /c {}.cmd --install-extension ./ra-lsp-0.0.1.vsix --force",
|
||||
code_binary
|
||||
),
|
||||
work_dir: "./editors/code",
|
||||
}
|
||||
.run()?;
|
||||
|
||||
let output = Cmd {
|
||||
unix: r"code --list-extensions",
|
||||
windows: r"cmd.exe /c code.cmd --list-extensions",
|
||||
unix: &format!(r"{} --list-extensions", code_binary),
|
||||
windows: &format!(r"cmd.exe /c {}.cmd --list-extensions", code_binary),
|
||||
work_dir: ".",
|
||||
}
|
||||
.run_with_output()?;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue