go: better logging if go install gopls fails (#8060)

Release Notes:

- Improved logging if installing `gopls` fails
This commit is contained in:
Thorsten Ball 2024-02-20 15:56:52 +01:00 committed by GitHub
parent 0d2ad67b27
commit 80db468720
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -125,11 +125,17 @@ impl super::LspAdapter for GoLspAdapter {
.args(["install", "golang.org/x/tools/gopls@latest"])
.output()
.await?;
anyhow::ensure!(
install_output.status.success(),
"failed to install gopls. Is `go` installed and in the PATH?"
if !install_output.status.success() {
log::error!(
"failed to install gopls via `go install`. stdout: {:?}, stderr: {:?}",
String::from_utf8_lossy(&install_output.stdout),
String::from_utf8_lossy(&install_output.stderr)
);
return Err(anyhow!("failed to install gopls with `go install`. Is `go` installed and in the PATH? Check logs for more information."));
}
let installed_binary_path = gobin_dir.join("gopls");
let version_output = process::Command::new(&installed_binary_path)
.arg("version")